我有下面的代码片段返回false:`password_verify`呼吁正确的密码
// bcrypt hash of 'password'
$hash = '$2y$10$4u0cQ.WEnwHDo.C5Nl1vm.shKA0beQ32wqzphSfzklAq9OcDM2nLu';
if(password_verify('password', $hash)) {
print_r('woohoo!');
}
else {
print_r('fubar');
}
在一台服务器它的正常工作(!哇噢),在另一这是行不通的。 I've just put it up on codepad.org并且它也失败了。
的问题是(如可以看到,键盘页上),其通过crypt
计算的散列是长度13,而不是所要求的60
我使用ircmaxel's password_compat library在github实施PHP 5.5只password_verify
功能。
不同的系统安装了不同的加密算法,所以他们可能会使用不同的算法。如果您没有指定可能发生的意外事件。在解密或比较之前,您必须首先检查使用了哪种类型的加密。 – arkascha 2013-02-26 13:40:37
你使用什么PHP版本? (我假设为5.3或5.4,因为lib只适用于那些版本,但是你能指定你正在测试的每台机器上的确切版本吗?) – SDC 2013-02-26 13:42:36
它在5.3.14上工作,而不是在5.2.17上工作 – Matthew 2013-02-26 14:08:04