我通过散列密码
$hashedpassword = password_hash($Password, PASSWORD_DEFAULT);
这会将密码作为哈希值存储到数据库中。 但是当我尝试通过
登录时$Password=$_POST['Password'];
$hashedpassword = password_hash($Password, PASSWORD_DEFAULT);
if(password_verify($Password, $hashedpassword))
它将始终告诉我密码正确,无论密码是否正确。 有没有办法解决这个问题,所以我可以对密码进行哈希处理,但使用输入的(未哈希的)密码登录。
答案 0 :(得分:2)
在过去的某个时候,创建帐户或最后一次更改密码时,您应该存储散列密码。
您需要从数据库中获取存储的密码哈希,并将其与password_verify
一起使用。
当前,您正在哈希新提交的密码,并以此为依据验证提交的密码,因此,它总是匹配的。