Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou criando um novo sistema de cadastro e login e já tenho um bd com tabela de usuários com inúmeros registros.
A questão é: como faço com os usuários antigos, já que os novos irão ser criados com a senha criptografada?
Pensei em colocar um if para determinar o tamanho da senha e caso seja maior que um valor descodifico com o hash e se menor mantenho o sistema anterior.
Achei meio gambiarra. Alguém sabe um jeito melhor de fazer?
>
13 horas atrás, Matheus Tavares disse:
Olá.
Você não deveria poder reverter o hash da senha. Se você puder, isso significa que os dados não estão seguros o suficiente.
1 - Faça o backup de tudo para não perder dados (e de preferência criptografe o arquivo de backup com GPG ou similar).
2 - Substitua a senha de todos os usuários no banco pelo hash baseado no algoritmo que você vá usar. Sugiro bcrypt (não use md5, sha128, sha512 e variantes deles): https://www.php.net/manual/pt_BR/function.password-hash.php
3 - Passe a utilizar o algoritmo para gerar o hash no cadastro e o algoritmo de comparação na hora de fazer o login: https://www.php.net/manual/pt_BR/function.password-verify.php
4 - Como passo adicional de segurança, seria interessante invalidar as senhas dos usuários antigos e enviar um e-mail para redefinir a senha e impedindo o cadastro da mesma senha utilizada anteriormente. Opcional, mas interessante.
Você literalmente só precisa das duas funções que citei acima e todos os usuários passarão a ter a senha armazenada de forma segura no seu sistema (isso ainda não significa que todo o sistema está seguro, estamos falando apenas de uma minúscula fração das preocupações).
Obrigado Matheus. Vou tentar implementar desta forma. Ajudou bastante.
Se as senhas dos usuários ainda não tiverem uma criptografia, uma opção é criar um sistema que irá buscar todas senhas e fazer um update nas mesmas já com a criptografia usando:
>
19 horas atrás, Matheus Tavares disse:
2 - Substitua a senha de todos os usuários no banco pelo hash baseado no algoritmo que você vá usar. Sugiro bcrypt (não use md5, sha128, sha512 e variantes deles): https://www.php.net/manual/pt_BR/function.password-hash.php
Dessa forma nem mesmos os usuários saberão que algo foi feito a respeito, mantendo suas senhas conforme as utilizam a todo momento.
Porém se forem um gama massiva de usuários registrados faça esse processo de forma gradual deixando o website em off por um tempo até terminar todo processo.
Lógico que tanto o cadastro como o login devem ser modificados para nova realidade.
Olá.
Você não deveria poder reverter o hash da senha. Se você puder, isso significa que os dados não estão seguros o suficiente.
1 - Faça o backup de tudo para não perder dados (e de preferência criptografe o arquivo de backup com GPG ou similar).
2 - Substitua a senha de todos os usuários no banco pelo hash baseado no algoritmo que você vá usar. Sugiro bcrypt (não use md5, sha128, sha512 e variantes deles): https://www.php.net/manual/pt_BR/function.password-hash.php
3 - Passe a utilizar o algoritmo para gerar o hash no cadastro e o algoritmo de comparação na hora de fazer o login: https://www.php.net/manual/pt_BR/function.password-verify.php
4 - Como passo adicional de segurança, seria interessante invalidar as senhas dos usuários antigos e enviar um e-mail para redefinir a senha e impedindo o cadastro da mesma senha utilizada anteriormente. Opcional, mas interessante.
Você literalmente só precisa das duas funções que citei acima e todos os usuários passarão a ter a senha armazenada de forma segura no seu sistema (isso ainda não significa que todo o sistema está seguro, estamos falando apenas de uma minúscula fração das preocupações).