我有下面的代碼片段返回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