php password_hash 刷新时改变

php password_hash changing when refresh

我正在尝试构建一个带有密码输入的表单。 我正在尝试通过 php password_hash 散列密码并将其保存在数据库中。 当用户登录时,我会散列他的输入并检查它是否与数据库中的相同。

问题是,当我使用 password_hash 时,它会在我每次刷新时随机输出。输入仍然相同。这使得用户无法登录,因为输出哈希永远不会匹配数据库中的内容。

我正在这样测试:

$pw = "hello";
echo password_hash ($pw, PASSWORD_DEFAULT);

the first echo = yGwPLFNIhybl6tcyuYsH..Dtgfn2hF7RUDwZ99o7BkL6eza4Dsope;
echo again = ytvaZHupw8Ik8Id/ImHCHekpp/Deg4E.XkG82zaVYx262Exv3zMde;

我是不是做错了?请帮忙

是的。你做错了什么。

hash预计会根据每个请求更改。这就是目的。

您需要做的是根据该哈希值验证密码。

if(password_verify($password, $hash)){
    //correct
}

不要尝试在每次加载页面时比较哈希值。