0
我的checkPassword()方法每次都返回false,即使我知道它是正確的。我使用與檢查相同的方法進行哈希/鹽析,並且確保一切都是它應該的方式,但它仍然返回false。 我使用 'Bcrypt-PHP-班' 在這裏找到哈希一切https://github.com/cosenary/Bcrypt-PHP-Class 這裏是我散列密碼:PHP檢查散列/鹽漬密碼時的登錄問題
$password = Bcrypt::hashPassword($_POST['password']);
這是我如何檢查密碼:
$check = Bcrypt::checkPassword($password, $user['password']);
( $ user是用戶信息的數組,例如用戶名,密碼,電子郵件等) 即使在檢查完所有內容完全正確後,$ check仍然是錯誤的。也沒有錯誤。 非常感謝任何能夠幫助我的人。 加密方法:
public static function checkPassword($password, $storedHash) {
if (version_compare(PHP_VERSION, '5.3') < 0) {
throw new Exception('Bcrypt requires PHP 5.3 or above');
}
self::_validateIdentifier($storedHash);
$checkHash = crypt($password, $storedHash);
return ($checkHash === $storedHash);
}
public static function hashPassword($password, $workFactor = 0) {
if (version_compare(PHP_VERSION, '5.3') < 0) {
throw new Exception('Bcrypt requires PHP 5.3 or above');
}
$salt = self::_genSalt($workFactor);
return crypt($password, $salt);
}
你可以發佈函數嗎? – Juakali92