Чтение этот отличный ответ о хешировании пароля и о том, как его реализовать:
Злая Блоха писал (а):
Генерация одноразового номера для каждого пользователя; одно это побеждает радужный стол. Это случайное число, которое в зависимости от диапазона увеличивает количество результирующих хэшей.
Так, кроме пароля пользователя, хранить уникальный токен в моей базе данных?
Пример кода в оригинальном сообщении:
function hash_password($password, $nonce) {
global $site_key;
return hash_hmac('sha512', $password . $nonce, $site_key);
}
Как я могу проверить пароль с помощью этого кода? Позвольте мне объяснить:
Когда пользователь отправляет свой пароль, мне нужно сгенерировать его хэш, чтобы проверить существующую строку базы данных, где адреса электронной почты и совпадают с хеш-паролем. Как я могу выбрать эту строку, когда я ничего не знаю о пользователях $nonce
? Я что-то пропустил? Может быть, мне нужно выбрать пользователя только по его адресу электронной почты, а затем проверить хэш пароля?
Кстати, вы рекомендуете этот метод хеширования?