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

Hasło nie jest weryfikowane za pomocą funkcji password_verify

Nie można wyszukiwać w bazie danych skrótu solonego hasła. Aby obliczyć hash, potrzebujesz funkcji password_hash(), tak jak już to zrobiłeś poprawnie w instrukcji insert.

// Hash a new password for storing in the database.
// The function automatically generates a cryptographically safe salt.
$hashToStoreInDb = password_hash($password, PASSWORD_DEFAULT);

Aby sprawdzić hasło, musisz najpierw wyszukać tylko według nazwy użytkownika (użyj przygotowanego zapytania, aby uniknąć wstrzyknięcia sql):

$sql = 'select * from admin where username = ?';
$db->prepare($sql);
$db->bind_param('s', $first);

Kiedy w końcu uzyskasz zapisany hash z bazy danych, możesz to sprawdzić w następujący sposób:

// Check if the hash of the entered login password, matches the stored hash.
// The salt and the cost factor will be extracted from $existingHashFromDb.
$isPasswordCorrect = password_verify($password, $existingHashFromDb);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql policz wystąpienia podciągu, a następnie uporządkuj według

  2. Błąd SQL 1630:Funkcja SUBSTRING nie istnieje.. co?

  3. JSON_ARRAYAGG() – Utwórz tablicę JSON z wierszy zapytania w MySQL

  4. Ostrzeżenie:mysql_result() [function.mysql-result]:Nie można przeskoczyć do wiersza 0 w indeksie wyników MySQL 5 w profile.php w wierszu 11

  5. Eksportowanie tabeli mysql do pliku .txt lub .doc przy użyciu PHP