实际上我的问题是hash_password每次用相同的单词进行不同的哈希,我不知道如何用数据库检查我的输入密码 我的数据库中有一个哈希密码,我试图用相同的算法来哈希我的输入,但是我得到了一个不同的值
$pass = password_hash($_post["pass"] , ARGON2I);
If($pass === $admin["Pass"]){
echo "success";
else
echo "failed";
答案 0 :(得分:2)
假设语言是PHP:
password_hash
即使对于相同的密码,每次也会创建唯一的哈希,这是因为每次都使用随机的盐。盐包含在password_hash
的结果中。
要验证哈希密码,请使用password_verify
,它使用与哈希一起保存的盐来比较并返回匹配项。
进行唯一哈希处理的原因是,具有相同密码的两个用户不会哈希到相同的值,因此知道一个用户不允许从匹配的哈希中知道其他用户的密码。
请参阅链接的文档。