php - password_hash返回false

时间:2016-09-27 16:33:27

标签: php hash passwords

我正在撰写Password课程,并且我使用password_hashPASSWORD_DEFAULT创建了哈希。

文档说如果散列失败,password_hash也可以返回false。在这种情况下,我会抛出异常,我想仔细测试这个案例。

您是否有$password字符串password_hash($spassword, PASSWORD_DEFAULT) === false的示例?

这与password_verify在与哈希值不匹配时返回false无关。

1 个答案:

答案 0 :(得分:1)

即使它已经很老了,但是我也有同样的问题,并且有点讨厌。所以我在这里分享我的稀疏结果:

结论: 我认为最好抓住false的情况(因此也抓住null的情况,尽管如果没有提供$options的情况也不会发生),也许它不太可能。这可能是您应用程序中最关键的部分!尤其是在使用PASSWORD_DEFAULT时,由于它可能会随着时间的推移而改变,因此它的行为是可能的,或者您的应用程序允许使用旧版本的PHP。我会在这里甚至出现die致命错误,因为据我所知,false情况只能由于服务器的严重配置错误而发生。因此,不能在单元测试中对其进行测试。

$hash = password_hash($password, PASSWORD_DEFAULT);

if (!$hash) {

  trigger_error("Fatal error when encrypting the password", E_USER_ERROR);
}