Метод 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 по-прежнему ошибочен даже после проверки того, что все в порядке. Ошибок нет. Спасибо всем, кто может мне помочь. Bcrypt методы:
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