password_needs_rehash

(PHP 5 >= 5.5.0, PHP 7)

password_needs_rehashVerifica se o hash recebido corresponde com as opções recebidas

Descrição

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

Esta 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.

Parâmetros

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.

Exemplos

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($hashPASSWORD_DEFAULT$options)) {
        
// If so, create a new hash, and replace the old one
        
$newHash password_hash($passwordPASSWORD_DEFAULT$options);
    }

    
// Log user in
}
?>

Valor Retornado

Retorna TRUE se o hash deve ser regenerado para corresponder ao algo e options indicados, ou FALSE caso contrário.