Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Która metoda jest lepsza, aby zweryfikować poświadczenia użytkownika?

Chodzi o to, że… Powinieneś przechowywać solone, haszowane hasła w bazie danych. Ponieważ są one pojedynczo solone na użytkownika/hasło, nie możesz wyszukaj je bezpośrednio za pomocą password = ? , ponieważ nie znasz soli i dlatego nie możesz z góry obliczyć pasującego haszu. Jeśli robisz to właściwie, musisz najpierw pobierz rekord użytkownika według nazwy użytkownika, a następnie zweryfikuj skrót hasła przy użyciu pobranej soli/hasz. Pseudokod:

$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'];

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqli lub PDO - jakie są plusy i minusy?

  2. Wyświetl otwarte transakcje w MySQL

  3. Czy używanie znaku jako klucza podstawowego/obcego jest niedopuszczalne?

  4. Utracono połączenie z serwerem MySQL podczas zapytania

  5. Nie można połączyć się z bazą danych (000webhost)