sql >> Databáze >  >> RDS >> Mysql

Heslo není ověřeno pomocí funkce password_verify

Nelze hledat osolený hash hesla v databázi. K výpočtu hashe potřebujete funkci password_hash(), jak jste již správně provedli ve svém příkazu insert.

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

Chcete-li zkontrolovat heslo, musíte nejprve hledat pouze podle uživatelského jména (používáte připravený dotaz, abyste se vyhnuli vkládání sql):

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

Když konečně získáte uložený hash z databáze, můžete jej zkontrolovat takto:

// 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. Jak mohu s MySQL vygenerovat sloupec obsahující index záznamu v tabulce?

  2. Golang ORDER BY problém s MySql

  3. Pokrok v online upgradu

  4. Ukládání obrázku do databáze přímo nebo jako data base64?