(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.
hash
Um hash criado por password_hash().
algo
Uma constante de algoritmo de senha indicando qual algoritmo utilizar no hash de senha.
options
Um 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.