Хеширование паролей для хранения на диске (подробнее внутри) - PullRequest
0 голосов
/ 09 августа 2009

Мне нужно хранить хэши паролей на диске. Я не совсем уверен, какую хеш-функцию использовать (в настоящий момент все они выглядят несколько обеспокоенными), но я склоняюсь к SHA-256.

Мой план состоит в том, чтобы взять пароль пользователя и объединить его с его идентификатором пользователя, случайной пользовательской солью и универсальной солью для всего сайта. Должен ли я объединить эти значения вместе, а затем хэшировать одну результирующую строку, или я должен хешировать каждое отдельно, объединить хэши, а затем хэшировать это? Также имеет значение порядок (пароль, идентификатор пользователя, соль пользователя, соль сайта)? Могу ли я переставить их так, как мне нравится, или это плохая идея, чтобы сначала было что-то, что не меняется (соль сайта) или что-то полностью предсказуемое (идентификатор пользователя / соль пользователя)?

Спасибо.

Ответы [ 4 ]

2 голосов
/ 09 августа 2009

SHA-256 представляется одним из лучших вариантов, доступных прямо сейчас.

Объединить все должно быть хорошо, и порядок не так уж важен. Просто убедитесь, что вы используете значительно более длинный солевой показатель.

В этом посте есть несколько хороших рекомендаций. Какой алгоритм использовать для хеширования паролей в моей базе данных?

1 голос
/ 09 августа 2009

Почему бы не bcrypt? Хеширование пароля должно быть очень медленным, но SHA * разработан, чтобы быть очень быстрым. bcrypt специально разработан для хеширования пароля.

0 голосов
/ 10 августа 2009

Никогда не хэшируйте хэши!

0 голосов
/ 09 августа 2009

Предыдущие SO вопросы по этому поводу:

Рекомендации по обработке паролей?

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

Но чтобы дать краткие ответы на ваши конкретные вопросы:

  • SHA-256 является приемлемым вариантом.
  • Вы можете хешировать одну строку.
  • Порядок не имеет значения.
  • Вам не нужны две соли. Хороша только пользовательская соль, вся сайт не нужна и на самом деле ничего не дает.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...