@Alexeevich

Как использовать соль в шифровании?

День добрый.

Изучаю web, сделал страницу регистрации пользователя.
На сервере "супер_скрипт" выполняет хеширование\соление пароля после чего в БД записывается хеш, в отдельный столбец записываю соль.

А как пользователя авторизовать? Что с его логином и паролем делать?
Брать пароль который он прислал обрабатывать его тем же "супер_скриптом" но вместо соли использую не случайное значение а то что записал в БД при регистрации пользователя?

Запутался (
  • Вопрос задан
  • 660 просмотров
Пригласить эксперта
Ответы на вопрос 4
kumaxim
@kumaxim
Web-программист
Имеем в базе
  • соль
  • пароль
  • имя юзера


Шифрование пароля выглядит так:
sha1( sha1(соль) + sha1(пароль) )
знак "+" в моем контексте есть объединение строк.

При регистрации ты генерируешь соль - случайные 6 букв/цифр. В БД соль хранится в открытом виде. При авторизации - соль достается из БД.

Как вариант, соль для каждого юзера можно не генерировать, а задать где-нибудь константой в конфигурационном файле.
Ответ написан
Комментировать
@Alexeevich Автор вопроса
Функция у меня есть...бд с паролем, логином и солью тоже. Что делать с солью после регистрации пользователя я не понимаю))
Ответ написан
Комментировать
@vilgeforce
Раздолбай и программист
А смысл хранить в одной таблице имя, хэш пароля и соль? База с солью позволяет успешно брутить пароли :-)
Ответ написан
А если вдруг интересует перфекционизм, то рекомендую - Salted Challenge Response Authentication Mechanism (SCRAM) RFC5802 - алгоритм защищен :
- от перехвата на сетевом уровне;
- от компрометации хранимой базы паролей;
- от вычисления rainbow-таблиц;
- приемлемо - от полного перебора.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы