Heim >Backend-Entwicklung >PHP-Tutorial >Warum gibt „password_verify' in PHP „False' zurück?
Warum gibt „password_verify“ „Falsch“ zurück?
Beim Versuch, ein Passwort mit der Funktion „password_verify“ von PHP zu validieren, wie unten gezeigt, kann es sein, dass „false“ auftritt Positives:
if (password_verify($_POST['user_password'], $result_row->user_password_hash)) { // ... }
Ursache:
Das Problem ist wahrscheinlich auf die Länge Ihrer Passwort-Hash-Spalte in der Datenbank zurückzuführen. Laut PHP-Handbuch wird empfohlen, Passwort-Hashes in einer Spalte zu speichern, die mindestens 255 Zeichen aufnehmen kann. Dies stellt die Kompatibilität mit dem bcrypt-Algorithmus sicher, der bekanntermaßen längenempfindlich ist.
Lösung:
Erweitern Sie die Länge Ihrer Passwort-Hash-Spalte in der Datenbank auf mindestens 255 Charaktere. Ändern Sie dazu Ihr Datenbankschema entsprechend, wie unten gezeigt:
ALTER TABLE users MODIFY COLUMN user_password_hash VARCHAR(255);
Dadurch kann Password_verify Passwörter genau validieren, indem es sie mit den gespeicherten Hashes vergleicht.
Das obige ist der detaillierte Inhalt vonWarum gibt „password_verify' in PHP „False' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!