Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

A senha não foi verificada usando a função password_verify


Não se pode procurar um hash de senha salgada em um banco de dados. Para calcular o hash você precisa da função password_hash() como você já fez corretamente em sua instrução de inserção.
// Hash a new password for storing in the database.
// The function automatically generates a cryptographically safe salt.
$hashToStoreInDb = password_hash($password, PASSWORD_DEFAULT);

Para verificar uma senha, primeiro você precisa pesquisar apenas por nome de usuário (use uma consulta preparada para evitar injeção de sql):
$sql = 'select * from admin where username = ?';
$db->prepare($sql);
$db->bind_param('s', $first);

Quando você finalmente obteve o hash armazenado do banco de dados, ele pode ser verificado assim:
// 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);