@StynuBlizz

Как лучше генерировать соль рандомно или по каким нибудь данным пользователя?

Вопрос полностью сформулирован в названии.
  • Вопрос задан
  • 1500 просмотров
Пригласить эксперта
Ответы на вопрос 5
Jump
@Jump
Системный администратор со стажем.
Для безопасности - без разницы.
Для удобства - смотрите как вам удобней.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
А в чем суть использования каких то данных пользователей? Добавить больше энтропии в рандом?
С хорошим рандомом будет без разницы.
Ответ написан
NYMEZIDE
@NYMEZIDE
резюме - ivanfilatov.ru
Соль не может быть рандомной! Иначе вы не сможете данные проверить, сгенерировать такую же соль.
Привязываться к данным пользователя тоже плохая идея. Он сменит что-либо, соль уже будет другая - а пароль генерировался от прошлой соли. Снова не совпадет ничего.

Вообще почитайте что такое Соль. Она может быть рандомной в самом начале, придумывании. Но потом она остается константой и прячется глубоко в backend системе. Если стоит задача сменить соль - то вначале вы должны расшифровать данные с помощью старой соли - и зашифровать на новую. И подменить на новую константу.
Ответ написан
Для безопасности "соль" генерируют рандомно и хранят рядом с паролем в базе. Можно дополнительно усложнить алгоритм добавив секретную величину - "перец", которая хранится отдельно.
Ответ написан
Комментировать
Tyranron
@Tyranron
Соль не является секретным параметром.
Единственная её задача - исключить вариант использования радужных таблиц. Для этого соль должна быть сложно угадываемой.

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

Для каждого пароля - своя отдельная соль.

Все это уже реализовано в том же алгоритме хэширования паролей Bcrypt.

Подробный ответ на вопрос о хэшировании паролей давался уже в этом вопросе:
Как лучше всего шифровать пароли для сохранения в БД?
Вопрос соли там разобран тоже.
Ответ написан
Ваш ответ на вопрос

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

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