# password_needs_rehash

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

password_needs_rehash — Comprueba 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($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.