Startseite >PHP >PHP-Referenz – Funktionen >sodium_crypto_pwhash_str_verify

sodium_crypto_pwhash_str_verify

sodium_crypto_pwhash_str_verify($hash, $password)

Gibt true zurück, wenn das Passwort zum Hash passt, sonst false. Die Parameter (Salt, Aufwand) liest sie aus dem Hash, prüft also auch Hashes, die mit anderen Einstellungen erzeugt wurden. Die Funktion gibt es in PHP ab 7.2.

Parameter

  • $hash – die Ausgabe von sodium_crypto_pwhash_str().
  • $password – das eingegebene Passwort.

Beispiele

$hash = sodium_crypto_pwhash_str("passwort123", SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE, SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE);
var_dump(sodium_crypto_pwhash_str_verify($hash, "passwort123")); // bool(true)
var_dump(sodium_crypto_pwhash_str_verify($hash, "Passwort123")); // bool(false)
// muss der Hash mit stärkeren Einstellungen neu berechnet werden?
var_dump(sodium_crypto_pwhash_str_needs_rehash($hash, SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE, SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE)); // bool(true)

Worauf Sie achten sollten

  • Vergleichen Sie Hashes nie mit == – die Funktion vergleicht in konstanter Zeit.
  • Nach einer erfolgreichen Anmeldung mit älteren Einstellungen berechnen Sie den Hash neu und speichern ihn erneut (…_needs_rehash).

Verwandte Funktionen:
sodium_crypto_pwhash_str()
password_verify()
password_needs_rehash()
hash_equals()