我试图了解password_verify如何使用它来重置密码。
我本以为这会起作用,但散列似乎不匹配?
$sUniqueCode = uniqid('1234', true);
$sHash1 = password_hash($sUniqueCode, PASSWORD_DEFAULT);
$sHash2 = password_hash($sUniqueCode, PASSWORD_DEFAULT);
$sHash3 = password_hash($sUniqueCode, PASSWORD_DEFAULT);
echo "Hash 1: ".$sHash1."<br>";
echo "Hash 2: ".$sHash2."<br>";
echo "Hash 3: ".$sHash3."<br>";
if(password_verify($sHash1, $sHash1)) {
echo "Hash 1 = hash 2 <br>";
}
if(password_verify($sHash3, $sHash1)) {
echo "Hash 1 = hash 3";
}
我没有得到最后两个条件的回声,我在这里错过了什么?
Context
我之所以想了解这一点,是因为我想生成一个相同 unique_id 的哈希值以存储在数据库中,并生成 1 个哈希值作为 GET 变量在电子邮件中发送。
如果上面的示例不起作用,那么我网站上的两个哈希值的比较也不会验证为 true,对吧?
使用生成的每个哈希值密码哈希() http://www.php.net/manual/en/function.password-hash.php用不同的盐腌制,所以$sHash1
, $sHash2
and $sHash3
一切都会不同
密码验证() http://www.php.net/manual/en/function.password-hash.php用于将明文密码与哈希密码进行比较,而不是两个哈希值之间的比较;使用password_verify()进行比较$sUniqueCode
与您生成的任何哈希值
if (password_verify($sUniqueCode, $sHash1)) { ... }
EDIT
不要通过电子邮件发送密码哈希(这在任何方面都没有用),而是发送用于初始帐户访问或新密码生成的随机数链接
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)