Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Criptografar a senha antes de armazenar no banco de dados?


Embora a resposta abaixo ainda esteja tecnicamente correta, o php tem novas recomendações com relação aos algoritmos de hash a serem usados. Sua recomendação , a partir do php> =5.5.0, é usar o password_hash e password_verify funções para hash e verificar senhas com hash. Como benefício adicional, essas funções incluem automaticamente um sal individualizado como parte do hash retornado, portanto, você não precisa se preocupar com isso explicitamente.
Se você não se importar em recuperar o valor da senha real (do valor criptografado do banco de dados), poderá executar um algoritmo de hash unidirecional (como sha1). Esta função retornará uma string de comprimento específico (hash) que não pode ser usada para encontrar a string original (teoricamente). É possível que duas strings diferentes possam criar o mesmo hash (chamado de colisão), mas isso não deve ser um problema com senhas.
Exemplo: $pass = sha1($_REQUEST['pass']);
Uma coisa, para torná-lo um pouco mais seguro é adicionar um sal ao hash e executar a função hash novamente. Isso torna mais difícil gerar um hash de senha de forma maliciosa, pois o valor salt é tratado apenas no lado do servidor.
Exemplo: $pass = sha1(sha1($_REQUEST['pass']).sha1("[email protected]$#(%"));