为什么password_verify为正确的密码返回false?

时间:2018-03-15 20:55:58

标签: php

我已将散列密码保存在数据库中,并希望每次返回printf "%s" 'cdt_main!@#$' | base64 时将其与用户输入进行比较,如下图所示。

出了什么问题?

enter image description here

1 个答案:

答案 0 :(得分:0)

不确定回答是否是一个好主意..但是试试

要使用password_verify,您必须拥有用户密码的哈希版本(通常在数据库中)。您将纯文本版本与散列版本进行比较

https://secure.php.net/manual/en/function.password-verify.php

创建您使用的原始哈希:

https://secure.php.net/manual/en/function.password-hash.php

在您的代码中(您不应该使用),您只是比较2个字符串,所以

if($password==$row['password']){
echo "matched";
}
只需要

超级优秀参考:Secure hash and salt for PHP passwords