2009-08-09 3 views
0

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

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

Спасибо.

ответ

2

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

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

Это сообщение имеет некоторые хорошие recommendations- What algorithm should I use to hash passwords into my database?

0

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

Password handling best practices?

What algorithm should I use to hash passwords into my database?

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

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

Grr - избили меня на 18 секунд. Извините за дублирование: D –

+0

Не стоит беспокоиться - это в некоторой степени характер StackOverflow. :) – Amber

1

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

0

Никогда хеш-хеш!

+0

Просто любопытно, почему бы и нет? – Moshe

+0

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

+0

Вы не должны повторно использовать хэш (без соли), потому что он будет выставлять – jmkeyes

Смежные вопросы