2016-06-08 3 views
1

Angenommen, Sie verwenden die Funktionen password_hash und password_verify, die in PHP integriert sind und den Standard-Hashalgorithmus (derzeit bcrypt) verwenden. Nun, da dies der Standard ist, und wenn sich das ändert, würde dies die Funktion passwort_verify in der Zukunft beeinflussen, nicht wahr? Also, würde ein Programmierer Code schreiben müssen, um dies in Zukunft zu überprüfen, dh wenn PASSWORD_DEFAULT! = Bcrypt, benutze bcrypt, um den Verifizierungsprozess fortzusetzen, und dann auch die Datenbank mit dem neuen Algorithmus zu aktualisieren?Wenn der Standard-Passwort-Hash in PHP aktualisiert wird, beeinflusst dies zukünftige Anmeldeversuche eines Benutzers?

Antwort

3

Nein, die Änderung des Algorithmus oder der Kosten wirkt sich nicht auf password_verify aus, da Algorithmus und Kosten Teil des gespeicherten Hash sind. Wenn Sie die Spezifikationen für password_hash sehen, lautet der Status

Der verwendete Algorithmus, Kosten und Salz werden als Teil des Hash zurückgegeben. Daher sind alle Informationen, die zur Überprüfung des Hashs benötigt werden, enthalten. Dadurch kann die Funktion password_verify() den Hash überprüfen, ohne dass ein separater Speicher für die Salz- oder Algorithmusinformationen benötigt wird.

Sie können password_needs_rehash http://php.net/manual/en/function.password-needs-rehash.php verwenden, um zu überprüfen, ob Sie das gespeicherte Passwort aktualisieren müssen. So unterstützt PHP bereits all dies für Sie und macht es so einfach, die Passwörter auf sichere Weise zu hashen.

Verwandte Themen