Как мне сохранить мой пароль? - PullRequest
0 голосов
/ 16 июля 2009

Я программирую новый сайт в JSF. На данный момент я программирую Логин.
Я использовал md5 несколько лет назад, но с Rainbow Tables я думаю, что теперь он не безопасен.
Итак, как мне хранить пароль в базе данных?

Ответы [ 4 ]

12 голосов
/ 16 июля 2009
2 голосов
/ 16 июля 2009

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

Кроме того, не забудьте сгенерировать соль для каждой учетной записи, чтобы использовать ваш пароль, и использовать алгоритм безопасного хеширования (md5 предназначен для скорости, а не для безопасности). SHA1 довольно распространен, хотя и начинает стареть.

0 голосов
/ 16 июля 2009

Если вы посмотрите PKCS # 5 (или, что еще лучше, найдете авторитетную реализацию, которая уже это делает), вы найдете довольно хороший механизм.

Обычно вы выбираете число (скажем, 500), пароль, алгоритм хеширования и соль (случайные данные добавляются в конец пароля, чтобы сделать его менее вероятным).

  1. Возьми пароль, посоли его и хэшируйте.
  2. Возьмите результат, соль (ту же соль) и она есть.
  3. Повторите шаг 2 N раз (в этом примере N равно 500).
  4. Сохраните окончательный хешированный, соленый результат вместе с N и самой солью в вашей базе паролей.
0 голосов
/ 16 июля 2009

Предлагаю перемешивание с sha512 и солением. (Сохраните случайное значение для всех и вместе хешируйте пароль и это значение.)

...