sql >> Base de Datos >  >> RDS >> Mysql

¿Cifrar la contraseña antes de almacenarla en la base de datos?

Si bien la respuesta a continuación sigue siendo técnicamente correcta, php tiene nuevas recomendaciones con respecto a los algoritmos hash que se deben usar. Su recomendación , a partir de php> =5.5.0, es usar el password_hash y password_verify funciones para hash y verificar contraseñas hash. Como beneficio adicional, estas funciones incluyen automáticamente una sal individualizada como parte del hash devuelto, por lo que no debe preocuparse por eso explícitamente.

Si no le importa recuperar el valor de la contraseña real (del valor cifrado de la base de datos), puede ejecutar un algoritmo hash unidireccional (como sha1). Esta función devolverá una cadena de longitud específica (hash) que no se puede usar para encontrar la cadena original (teóricamente). Es posible que dos cadenas diferentes puedan crear el mismo hash (llamado colisión), pero esto no debería ser un problema con las contraseñas.
Ejemplo: $pass = sha1($_REQUEST['pass']);

Una cosa, para hacerlo un poco más seguro, es agregar una sal al hash y ejecutar la función hash nuevamente. Esto hace que sea más difícil generar un hash de contraseña de forma malintencionada, ya que el valor salt se maneja solo en el lado del servidor.
Ejemplo: $pass = sha1(sha1($_REQUEST['pass']).sha1("[email protected]$#(%"));