Mysql
 sql >> Datenbank >  >> RDS >> Mysql

password_hash, password_verify, MySQL-Missverständnis?

Sie können die Eingabe nicht hashen und dann in der Datenbank abfragen, da der Hash jedes Mal ein anderes zufälliges Salt verwendet. Sie könnten also dasselbe Passwort tausendmal hashen und 1000 verschiedene Ergebnisse erhalten.

Sie müssen einfach nur die Datenbank nach dem Datensatz zum Benutzernamen abfragen und dann den von der Datenbank zurückgegebenen Passwort-Hash mit dem eingegebenen Passwort vergleichen, indem Sie password_verify() verwenden .

Auch beim anfänglichen Schreiben des Hashs in die DB bei der Passworterstellung (mithilfe von password_hash() ) muss der Hash nicht entkommen. password_hash() wird bei der Passwortüberprüfung überhaupt nicht verwendet.