Encriptar contraseñas con Blowfish
Hace ya bastante tiempo ya hablamos en este blog sobre encriptar contraseñas con PHP para registrar, por ejemplo, contraseñas de usuarios en base de datos. En esa entrada indicábamos que hacerlo con la función md5() de PHP era la solución aplicada.
Hoy en día, la función md5() no es segura ya que se puede desencriptar las contraseñas vía fuerza bruta. Por tanto, si estás creando un sitio Web que guarda información importante, debes emplear otro sistema de encriptación más seguro.
En su lugar, podemos emplear por ejemplo la función crypt(), empleando el algoritmo CRYPT_BLOWFISH.
echo crypt('123123');
Esta función nos permite hacer hashing de una sola vía de un string.
Antes de emplear esta técnica deberemos saber si nuestro servidor tiene activo la utilización del algoritmo Blowfish.
if (defined("CRYPT_BLOWFISH") && CRYPT_BLOWFISH) {
echo "CRYPT_BLOWFISH está activo!";
}
else {
echo "CRYPT_BLOWFISH no está activo";
}
Ahora, como comprobamos la contraseña? Cuando el usuario se registra se guarda en la base de datos su nombre de usuario y el hash asociado a su contraseña. Cuando éste va a loguearse completará el campo nombre de usuario y contraseña, si el hash de esta contraseña ingresada en el formulario de login coincide con el hash asociado al nombre de usuario guardado en la base de datos en el momento del registro, el usuario iniciará sesión.
También podríamos emplear la función password_hash() que también crea un nuevo hash de contraseña usando un algoritmo de hash fuerte de único sentido.
echo password_hash('YOUR_PASSWORD', PASSWORD_DEFAULT);
Deja una respuesta