- 18, May 2024
- #1
Привет,
Я работаю над системой входа в систему PHP на основе онлайн-учебника. (Я так близок к тому, чтобы закончить это!!)
Я использую одну и ту же функциональность для создания PWD и его проверки, но, тем не менее, у меня разные хеши.
Я сфотографировал результат, который получаю: Соль для проверки - это соль из БД, я также сохранил незашифрованный PWD() в базе данных, чтобы проверить, есть ли там ошибка, но нет ошибки (желтая линия) Оба хеша (черный и красный) не совпадают.
Очевидно, что наличие соли не может быть причиной проблемы!! Это моя проверочная функция:
Я сфотографировал результат, который получаю: Соль для проверки - это соль из БД, я также сохранил незашифрованный PWD() в базе данных, чтобы проверить, есть ли там ошибка, но нет ошибки (желтая линия) Оба хеша (черный и красный) не совпадают.
Очевидно, что наличие соли не может быть причиной проблемы!! Это моя проверочная функция:
class Hash {
public static function make($string,$salt = '') {
return hash('sha256',$string.$salt);
}
public static function salt($length) {
return random_bytes($length);
}
public static function unique() {
return self::make(uniqid());
}
}
PHP: Возможно, проблема в моем классе Hash, методе make, понятия не имею???
if($this->data()->password === Hash::make($password,$this->data()->salt)) { echo 'OK';
PHP: Если кто-то здесь что-то знает, большое спасибо!