password_needs_rehash

(PHP 5 >= 5.5.0, PHP 7)

password_needs_rehashComprueba si el hash facilitado coincide con las opciones proporcionadas

Descripción

password_needs_rehash ( string $hash , int $algo [, array $options ] ) : bool

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($hashPASSWORD_DEFAULT$options)) {
        
// Si es así, crear un nuevo hash y reemplazar el antiguo
        
$newHash password_hash($passwordPASSWORD_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.