密码哈希和密码验证

时间:2020-05-01 20:17:57

标签: php php-password-hash

我通过散列密码

$hashedpassword = password_hash($Password, PASSWORD_DEFAULT);

这会将密码作为哈希值存储到数据库中。 但是当我尝试通过

登录时
$Password=$_POST['Password'];

$hashedpassword = password_hash($Password, PASSWORD_DEFAULT);
if(password_verify($Password, $hashedpassword))

它将始终告诉我密码正确,无论密码是否正确。 有没有办法解决这个问题,所以我可以对密码进行哈希处理,但使用输入的(未哈希的)密码登录。

1 个答案:

答案 0 :(得分:2)

在过去的某个时候,创建帐户或最后一次更改密码时,您应该存储散列密码。

您需要从数据库中获取存储的密码哈希,并将其与password_verify一起使用。

当前,您正在哈希新提交的密码,并以此为依据验证提交的密码,因此,它总是匹配的。