(PHP 5 >= 5.5.0, PHP 7)
password_needs_rehash — Comprueba si el hash facilitado coincide con las opciones proporcionadas
$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.
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.
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
}
?>
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.