Сравнить хешированный пароль, чтобы проверить, совпадают ли пароли

Я использую метод blowfish, чтобы хэшировать пароли от пользователей, когда они регистрируются.

В форме регистрации есть поле «Введите пароль» и поле «Подтвердить пароль».

Поэтому, чтобы проверить, совпадают ли пароли, я использовал хешированные версии для сравнения. Но тогда, похоже, не совпадает.

Пожалуйста, смотрите код ниже …

получить значения из супер глобальных переменных и хэшировать их.

$hashed_password = password_encrypt($_POST['password']);
$conf_hashed_password = password_encrypt($_POST['conf_password']);

вызвать функцию

 passwords_match_check($hashed_password, $conf_hashed_password);

Определенная функция

function passwords_match_check($hashed_pw, $conf_hashed_pw){
global $errors;
if($conf_hashed_pw != $hashed_pw){
$errors['pws_no_match'] = "Passwords do not match";
}

}

Этот код всегда говорит, что пароли не совпадают, даже если я знаю, что пароли совпадают …

Итак, где я ошибся …?

Это нормально, если я просто использовал значения без хеширования для сравнения?

0

Решение

Просто используйте password_hash() а также password_verify() (оба включены в php 5.5+). И если вы на 5.3 — 5.5, используйте паролем Compat библиотека обратной совместимости.

Обычай password_encrypt() функция не нужна и, скорее всего, менее безопасна, чем встроенная. Так что просто используйте встроенный.

2

Другие решения

Пока вы не поделитесь функцией password_encrypt, трудно сказать.
Если метод запускает шифрование однозначно, оба хеша будут разными.

(Может быть причиной вашей неудачной проверки.)
Почему бы не проверить необработанный ввод вместо хеширования?

0

По вопросам рекламы [email protected]