Die allgemeine Praxis ist wie folgt:
- Holen Sie
password
Hash aus der Datenbank, wo derusername
=der eingegebene Benutzername. - Wenn Zeilen gefunden werden, gibt es einen Benutzer
- Jetzt vergleichen Sie das eingegebene Passwort mit dem in der Datenbank gespeicherten Hash.
Ich werde den obigen Ablauf hier in einem Pseudocode für Sie skizzieren:
$query = SELECT password FROM users WHERE username = '$username'
$data = FETCH_THE_DATA($query);
if(password_verify($USER_INPUTTED_PASSWORD, $data['password'])) {
// password is correct
} else {
// password is in-correct
}
Notizen
- Beenden Sie die Verwendung von
mysql_*
Funktionen. Die Bibliothek ist veraltet, da sie unzuverlässig ist und in zukünftigen Versionen von PHP entfernt wird.- Sie sind besser dran, wenn Sie PDO verwenden oder vorbereitete MySQL-Anweisungen
- Sie sollten immer das Handbuch lesen -
password_verify()
, heißt es eindeutig, dass Sie das "vom Benutzer eingegebene Passwort" mit der gehashten Version vergleichen, die in Ihrer Datenbank gespeichert ist.