Я делаю систему входа в систему, и я хочу хэш-пароли, чтобы сделать их более безопасными, но каждый раз он возвращает другой хеш и даже не может быть проверен с помощью password_verify (), вот мой код:
$password = password_hash($password4, PASSWORD_DEFAULT);
и вот мой код для проверки:
if(password_verify($password4, $dbpassword))
Так что давайте возьмем его по одной части за раз
но каждый раз он возвращает другой хеш
Это идея. password_hash
предназначен для генерации случайной соли каждый раз. Это означает, что вам нужно разбить каждый хэш отдельно, вместо того, чтобы угадывать одну соль, используемую для всего и иметь огромную ногу.
Нет необходимости в MD5
или других хэшированиях. Если вы хотите повысить безопасность password_hash
вы получаете более высокую стоимость (стоимость по умолчанию – 10)
$password = password_hash($password4, PASSWORD_DEFAULT, ['cost' => 15]);
Что касается проверки
if(password_verify($password4, $dbpassword))
Таким образом, $password4
должен быть вашим неуправляемым паролем, а $dbpassword
должен быть хешем, который вы сохранили в своей базе данных