Чтобы правильно использовать хеширование пароля в PHP, используйте комбинацию password_hash
и password_verify
.
Когда пользователь регистрируется, вы получаетеего пароль, хешируйте его и сохраняйте в базе данных:
$hash = password_hash($_POST['newpassword'], PASSWORD_DEFAULT);
// store $hash in database column "password"
Когда этот пользователь хочет войти в систему, вы проверяете по хешу:
// fetch hash from database, store it in $stored_hash
$logged_in = password_verify($_POST['password'], $stored_hash);
if ($logged_in === TRUE) {
echo "Welcome!";
} else {
echo "Username or password incorrect.";
}
Заключительные замечания:
- Используйте
PASSWORD_DEFAULT
и убедитесь, что ваша база данных может сохранить результат (также в будущем).Алгоритмы хэширования иногда подвергаются взлому. - Вы можете использовать другого провайдера, такого как Google или Facebook, для обработки вашей аутентификации.Это также имеет свои недостатки.