password_needs_rehash
(PHP 5 >= 5.5.0)
password_needs_rehash — Comprueba si el hash facilitado coincide con las opciones proporcionadas
Descripción
$hash
, integer $algo
[, array $options
] )Esta función comprueba si el hash facilitado implementa el algoritmo y opciones proporcionadas. Si no, asume que el hash necesita volver a ser generado.
Parámetros
-
hash -
Un hash creado por password_hash().
-
algo -
A constante del algoritmo de contraseñas indicando qué algoritmo utilizar para crear el hash de la contraseña.
-
options -
Un array asociativo de opciones. Véanse las constantes de algoritmos de contraseñas para la documentación sobre las opociones admitidas de cada algoritmo.
Ejemplos
Ejemplo #1 Empleo de password_needs_rehash()
<?php
$password = 'rasmuslerdorf';
$hash = '$2y$10$YCFsG6elYca568hBi2pZ0.3LDL5wjgxct1N8w/oLR/jfHsiQwCqTS';
// El parámetro cost puede cambiar con el tiempo al mejorar el hardware
$options = array('cost' => 11);
// Verificar el hash almacenado con la contraseña en texto plano
if (password_verify($password, $hash)) {
// Comprobar hay un nuevo algoritmo de hash
// o ha cambiado el coste
if (password_needs_rehash($hash, PASSWORD_DEFAULT, $options)) {
// Si es así, crear un nuevo hash y reemplazar el antiguo
$newHash = password_hash($password, PASSWORD_DEFAULT, $options);
}
// Identificar al usuario
}
?>
Valores devueltos
Devuelve TRUE si el hash debe ser generado de nuevo para coincidir con la información pasada a
algo y options, o FALSE
en cualquier otro caso.