PHP passwort_hash(), passwort_verify()
Problem:
Ein Registrierungsskript mit „password_hash()“ für die Passwortverschlüsselung und ein Anmeldeskript, das „password_verify()“ für die Passwortüberprüfung verwendet, stimmen mit den Passwörtern nicht richtig überein.
Antwort:
Hier ist eine Aufschlüsselung des Problems und eine Codelösung:
Wichtige Punkte:
Problem und Lösung:
Das Problem entsteht, wenn unterschiedliche Algorithmen für Hashing und Verifizierung verwendet werden. Die Fehlermeldung, die Sie erhalten haben („Nein. Passwörter“) weist darauf hin, dass das in der Datenbank gespeicherte gehashte Passwort nicht mit dem bei der Anmeldung eingegebenen ungehashten Passwort übereinstimmt.
Überarbeiteter Code:
Registrierung (Hashing):
<code class="php">$password = password_hash($password, PASSWORD_DEFAULT); // Using PASSWORD_DEFAULT or specific algorithm</code>
Anmeldung (Verifizierung):
<code class="php">if (password_verify($pwd, $row['password'])) { // Password matches... }</code>
Fußnoten:
Das obige ist der detaillierte Inhalt vonWarum stimmen gehashte Passwörter bei Verwendung von „password_hash()' und „password_verify()' nicht überein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!