Encriptar contraseña en PHP

1.6/5 - (61 votos)

Después de muchos comentarios, preguntándome como encriptar contraseñas en PHP, voy a escribir esta pequeña entrada, para poder hacerlo de una manera muy sencilla.

En los primeros años de la creación de páginas webs, se enviaban las contraseñas por texto plano y pronto vieron los hackers un nicho donde meter el pico y hacer travesuras.

Debido a ello se empezaron a utilizar métodos de encriptación, para el tutorial yo voy a utilizarlas funciones standard de php password-hash y password-verify , disponibles desde la versión 5.5.0.

Vamos a crear dos ficheros generaHash.php y compruebaHash.php.

En generaHash.php, crearemos un hash para la contraseña «imposible» con este código.

<?php
echo "PASSWORD CIFRADA";
echo "<br>";
$hash=password_hash("imposible", PASSWORD_DEFAULT);
echo "HASH: " . $hash;
?>

Ejecutando el fichero generaHash.php veremos por pantalla el hash generado:

En el fichero compruebaHash.php lo que haremos es introducir el hash creado antes y ver como se valida el acceso.

<?php
$hash='$2y$10$nJmmNnlBfRPd55FCj3vjmuZifgQrOrY5Gf6SDAY0iEDU0TiQ0Kbh2';
if (password_verify('imposible', $hash)) {
    echo '¡La contraseña es válida!';
} else {
    echo 'La contraseña no es válida.';
}
?>

Ejecutando el fichero compruebaHash.php vemos que el hash es válido.

Deja un comentario