我的问题是与password_hash一起使用的password_verify(php)会在一段时间后返回false。它首先正常工作(正确的密码返回true,错误的pw重新生成错误)。我的登录表单就像我想要的那样工作。但几天之后突然密码和哈希不再匹配了。密码和散列(数据库中的记录器)都没有更改。 然后,当我重置相同的密码时,它再次工作。我不明白会发生什么......
我使用预准备语句和password_hash:
在数据库中记录密码$inscr = $bdd->prepare('INSERT INTO membres (pseudo,motdepasse,email,sexe) VALUES (?,?,?,?)');
$inscr->execute(array(htmlspecialchars($_POST['pseudo']),password_hash(htmlspecialchars($_POST['password1']),PASSWORD_BCRYPT),htmlspecialchars($_POST['email']),$_POST['sexe']));
$inscr->closeCursor();
然后使用登录表单我用password_verify测试密码:
if(password_verify($_POST['login_password'],$login_data['motdepasse'])!==true)
{
[will report error message]
}
else if (password_verify($_POST['login_password'],$login_data['motdepasse'])==true)
{
[will connect user]
}
有什么想法吗?