Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

hash_equals

Hash-Funktionen

    Befehl:
bool hash_equals ( string $known_string , string $user_string )


    Parameter-Liste:
NameBeschreibung
known_stringDer String bekannter Länge zu vergleichen gegen
user_stringdie vom Benutzer angegebene Zeichenfolge

    Rückgabewerte:
Gibt TRUE zurück, wenn die beiden Strings gleich sind, sonst FALSE.

    Beschreibung:
Vergleicht zwei Strings zur gleichen Zeit mit, ob sie gleich sind oder nicht.

Diese Funktion sollte verwendet werden Timing-Attacken zu mindern; zum Beispiel, wenn bei der Prüfung crypt() Passwort-Hashes.


    Aktiv in Version:
(PHP 5 >= 5.6.0, PHP 7)

    Hinweis:
Beide Argumente müssen von gleicher Länge sein, um erfolgreich verglichen werden. Als Argumente unterschiedlicher Länge zugeführt werden, wird FALSE zurückgegeben sofort und die Länge des bekannten String kann im Falle eines Timing-Angriff zugespielt werden.

Es ist wichtig, die vom Benutzer bereitgestellte Zeichenfolge als zweiter Parameter zur Verfügung zu stellen, anstatt die erste.

    Fehler:
Gibt eine E_WARNING Nachricht aus, wenn eine der angegebenen Parameter kein String ist.

hash_equals() - Beispiel:


Eingabe:
<?PHP
$expected  = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$correct   = crypt('12345', '$2a$07$usesomesillystringforsalt$');
$incorrect = crypt('apple',  '$2a$07$usesomesillystringforsalt$');

var_dump(hash_equals($expected, $correct));
var_dump(hash_equals($expected, $incorrect));
?>


Ausgabe:
bool(true)
bool(false)

Hash-Funktionen