Хеширование + соль для веб-приложения Java

Jonas Grønbek спросил: 28 апреля 2018 в 08:25 в: java

Мне рассказывали о создании собственных методов соли и хэширования. Из-за того, что уже существующие в java намного превосходят. Немного посмотрев на это, я не совсем понимаю следующее:

  • В чем разница между созданием хэша и его проверкой?
  • Если соль случайна каждый раз, не нужен ли токен для проверки паролей, отличных от имени пользователя?

Как создавать и проверять хешированные и соленые пароли современным способом для веб-приложения java?


1 ответ

Есть решение
Red Boy ответил: 28 апреля 2018 в 08:41

Вот обычный способ хранения пароля с помощью Hashing.

В чем разница между созданием хэша и его проверкой?

  1. Take пароль обычного текста, добавьте случайную соль, затем сохраните соль и хешированный пароль в базе данных.
  2. Когда пользователь хочет войти в систему, вы берете свой отправленный пароль, добавляете случайную соль из своей учетной записи информацию, хеш и посмотреть, соответствует ли он сохраненному хеш-паролю с их информацией об учетной записи.

Если соль случайна каждый раз, вам не нужен токен для проверки пароли, отличные от имени пользователя?

Если вы видите # 2, токен может потребоваться для целей сеанса, но не для аутентификации (проверка, является ли пользователь законным.)

Существует хороший вопрос того же предмета. Есть хорошие рабочие примеры, связанные с тем же, что вы могли бы использовать.

Red Boy ответил: 28 апреля 2018 в 10:17
@ JonasGrønbek, в то время как аутентификация, вы читаете сохраненную соль с профилем пользователя, так что да, вы могли бы сказать, соль для некоторых пользователей - каждый раз, когда вы храните ее в профиле пользователя. Хотя, как только вы аутентифицировали правильно каждый раз, вы могли бы снова создать соль и пересчитать Hash, если это необходимо.