(PHP 5 >= 5.5.0, PHP 7)
password_needs_rehash — Verifica se o hash recebido corresponde com as opções recebidas
$hash
, integer $algo
[, array $options
] ) : booleanEsta função verifica se o hash fornecido implementa o algoritmo e as opções indicadas. Se não, ela assume que o hash precisa ser regenerado.
hashUm hash criado por password_hash().
algoUma constante de algoritmo de senha indicando qual algoritmo utilizar no hash de senha.
optionsUm array associativo contendo opções. Veja as constantes de algoritmo de senha sobre detalhes das opções suportadas por cada algoritmo.
Exemplo #1 Utilização de password_needs_rehash()
<?php
$password = 'rasmuslerdorf';
$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($hash, PASSWORD_DEFAULT, $options)) {
// If so, create a new hash, and replace the old one
$newHash = password_hash($password, PASSWORD_DEFAULT, $options);
}
// Log user in
}
?>
Retorna TRUE se o hash deve ser regenerado para corresponder ao algo
e options indicados, ou FALSE
caso contrário.