sql >> Database teknologi >  >> RDS >> Mysql

Adgangskoden er ikke bekræftet ved hjælp af funktionen password_verify

Man kan ikke søge efter en saltet password-hash i en database. For at beregne hashen skal du bruge password_hash()-funktionen, som du allerede gjorde korrekt i din insert-sætning.

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

For at kontrollere en adgangskode skal du først søge efter brugernavn (brugte en forberedt forespørgsel for at undgå sql-injektion):

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

Når du endelig har fået den gemte hash fra databasen, kan den kontrolleres sådan her:

// 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. Er du sorteret? Tips vedrørende T-SQL-vinduebestilling

  2. Hvor gemmer PostgreSQL konfigurations-/conf-filer?

  3. Forsøger at installere Perl-Mysql DBD, mysql_config kan ikke findes

  4. Beskyttelse af MySQL-adgangskode, når du udvikler i Python?