我正在尝试使用密码输入构建表单。
我试图通过php password_hash
哈希密码并将其保存在数据库中。
当用户登录时,我将对其输入进行哈希并检查它是否与数据库中的相同。
问题是,当我使用password_hash时,每次刷新时它都会给我一个随机输出。输入仍然相同。这使得用户无法登录,因为outputhash永远不会匹配数据库中的什么。
我正在测试它:
$pw = "hello";
echo password_hash ($pw, PASSWORD_DEFAULT);
the first echo = $2y$10$7GwPLFNIhybl6tcyuYsH..Dtgfn2hF7RUDwZ99o7BkL6eza4Dsope;
echo again = $2y$10$7tvaZHupw8Ik8Id/ImHCHekpp/Deg4E.XkG82zaVYx262Exv3zMde;
我做错了吗?请帮忙
答案 0 :(得分:2)
是。你做错了什么。
hash
预计会在每次请求时更改。这就是目的。
您需要做的是根据该哈希验证密码。
if(password_verify($password, $hash)){
//correct
}
请勿尝试比较每个页面加载的哈希值。