password_needs_rehash

(PHP 5 >= 5.5.0, PHP 7)

password_needs_rehashÜberprüft, ob der übergebene Hash mit den übergebenen Optionen übereinstimmt

Beschreibung

password_needs_rehash ( string $hash , int $algo [, array $options ] ) : bool

Diese Funktion überprüft, ob der übergebene Hash den gleichen Algorithmus und die gleichen Optionen nutzt, wie in den übergebenen Optionen abgegeben. Falls nicht, wird angenommen, dass erneutes Hashen notwendig ist.

Parameter-Liste

hash

Ein Hash, der durch password_hash() erzeugt wurde.

algo

Eine Konstante für den Passwort-Algorithmus, die den Algorithmus zum hashen des Passwortes angibt.

options

Ein assoziatives Array mit Optionen. Siehe auch Konstanten für Passwort-Algorithmen für Informationen zu den von dein jeweiligen Algorithmen unterstützten Optionen.

Beispiele

Beispiel #1 password_needs_rehash()() Verwendungsbeispiel

<?php

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

// Der Aufwand-Parameter kann sich im Lauf der Zeit ändern, da die Hardware besser wird
$options = array('cost' => 11);

// Überprüfe den gespeicherten Hash gegen das Klartextkennwort
if (password_verify($password$hash)) {
    
// Prüfe ob ein neuerer Hash-Algorithmus verfügbar ist
    // oder sich der Aufwand geändert hat
    
if (password_needs_rehash($hashPASSWORD_DEFAULT$options)) {
        
// Falls ja, dann erzeuge einen neuen Hash, und ersetze den alten
        
$newHash password_hash($passwordPASSWORD_DEFAULT$options);
    }

    
// Melde Nutzer an
}
?>

Rückgabewerte

Gibt TRUE zurück, falls der Hash erneut gehasht werden muss, damit die übergebenen Parameter algo und options übereinstimmen, sonst FALSE.