sql >> Database >  >> RDS >> Mysql

Wachtwoord is niet geverifieerd met de functie password_verify

Men kan niet zoeken naar een gezouten wachtwoord-hash in een database. Om de hash te berekenen heb je de password_hash() functie nodig zoals je al correct deed in je insert statement.

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

Om een ​​wachtwoord te controleren, moet u eerst alleen op gebruikersnaam zoeken (gebruikte een voorbereide zoekopdracht om sql-injectie te voorkomen):

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

Als je eindelijk de opgeslagen hash uit de database hebt, kan het als volgt worden gecontroleerd:

// 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. PDO en MySQL Fulltext-zoekopdrachten

  2. Oracle Joins - Vergelijking tussen conventionele syntaxis versus ANSI-syntaxis

  3. Fout bij het laden van oci8.so met Ubuntu-server 17.04 php 7 en apache2

  4. Hoe Ruby on Rails configureren met Oracle?