Checks if the given hash matches the given options

(PHP 5 >= 5.5.0)

password_needs_rehashChecks if the given hash matches the given options


boolean password_needs_rehash ( string $hash , integer $algo [, array $options ] )

This function checks to see if the supplied hash implements the algorithm and options provided. If not, it is assumed that the hash needs to be rehashed.

Список параметров


Хэш, созданный функцией password_hash().


Константа, обозначающая используемый алгоритм хэширования пароля.


Ассоциативный массив с опциями. За документацией по поддерживаемым опциям для каждого алгоритма обратитесь к разделу "Константы алгоритмов хэширования паролей".


Пример #1 Usage of password_needs_rehash()


$hash '$2y$10$YCFsG6elYca568hBi2pZ0.3LDL5wjgxct1N8w/oLR/jfHsiQwCqTS';

// The cost parameter can change over time as hardware improves
$options = array('cost' => 11);

// Verify stored hash against plain-text password
if (password_verify($password$hash)) {
// Check if a newer hashing algorithm is available
    // or the cost has changed
if (password_needs_rehash($hashPASSWORD_DEFAULT$options)) {
// If so, create a new hash, and replace the old one
$newHash password_hash($passwordPASSWORD_DEFAULT$options);

// Log user in

Возвращаемые значения

Returns TRUE if the hash should be rehashed to match the given algo and options, or FALSE otherwise.