clovis.sardinha 1 Denunciar post Postado Janeiro 10, 2023 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? Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Tavares 167 Denunciar post Postado Janeiro 10, 2023 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). Compartilhar este post Link para o post Compartilhar em outros sites
clovis.sardinha 1 Denunciar post Postado Janeiro 11, 2023 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. Compartilhar este post Link para o post Compartilhar em outros sites
tetsuo 0 Denunciar post Postado Janeiro 11, 2023 +1 Compartilhar este post Link para o post Compartilhar em outros sites
Omar~ 87 Denunciar post Postado Janeiro 11, 2023 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. Compartilhar este post Link para o post Compartilhar em outros sites