我想按照提供的密碼教程here。我添加了用戶工作(我的鹽現在是硬編碼 - 缺少mcrypt_create_iv
)。無論如何,當我跟進密碼檢查時,我會得到錯誤並且哈希值不同。哈希等於不表示應該
hash_equals($user->hash, crypt($password, $user->hash))
我正在爲crypt($password, $user->hash)
*0
爲$user->hash
和*1
?每個教程都應該相同。
這些值的含義是什麼? *0
對我來說似乎我的密碼加密功能不起作用?
這裏是我的加密密碼代碼:
$cost = 10;
// Create a random salt
#$salt = strtr(base64_encode(mcrypt_create_iv(16, MCRYPT_DEV_URANDOM)), '+', '.');
$salt = 'Banana';
$salt = sprintf("$2a$%02d$", $cost) . $salt;
$hash = crypt($password, $salt);
並通過改變鹽和密碼組合我不斷收到*0
,所以一定出事了。我需要加載一些庫嗎?似乎缺少一些東西,我不知道是什麼。
請使用官方密碼散列庫http://php.net/manual/en/ref.password.php – JimL
很酷,謝謝。這是使用庫的標準方法嗎? –