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

Welche Methode ist besser, um Benutzeranmeldeinformationen zu validieren?

Die Sache ist… Sie sollen gesalzen, gehasht speichern Passwörter in der Datenbank. Denn diese sind einzeln gesalzen pro Benutzer/Passwort, können Sie nicht suchen Sie sie direkt mit password = ? , da Sie das Salt nicht kennen und daher den passenden Hash nicht im Voraus berechnen können. Wenn Sie dies richtig machen, müssen Sie Rufen Sie zuerst den Benutzerdatensatz nach Benutzername ab und validieren Sie dann den Passwort-Hash mit dem abgerufenen Salt/Hash. Pseudocode:

$user = fetch_from_database($_POST['username']);

if (!$user) {
    throw new Exception("User doesn't exist");
}

if (!password_verify($_POST['password'], $user['password_hash'])) {
    throw new Exception('Invalid password');
}

echo 'Welcome ', $user['name'];

Siehe http://php.net/password_hash , http://php.net/password_verify .