2014-10-10 2 views
-1

Должен ли я использовать одну секретную строку как соль для хеширования, или лучше, чтобы у каждого пользователя была своя соль для хеширования?Полезно ли использовать имя пользователя пользователя в качестве соли при хешировании пароля, например, хэша (username_str + password_str)?

Рассмотрим эти три хэшей:

hash("secretKey777" + password); 
hash("secretKey777" + username + password); 
hash(username + password); 

Какой из них труднее взломать и безопасным? Я думаю, что лучше всего использовать hash("secretKey777" + username + password);, потому что для каждого пользователя не только «secretKey777», но и его собственное имя пользователя. В случае, если код, который хэширует утечку паролей, не будет атаки на все хеши одновременно - у каждого будет своя уникальная соль.

+1

Это, вероятно, будет лучше подходит на [security.se] –

+0

@MikeW Спасибо, я просто спросил его там, тоже. Вот ссылка: http://security.stackexchange.com/questions/69421/is-it-a-good-idea-to-use-the-users-username-as-a-salt-when-hashing-a- пароль-л – bodacydo

ответ

-1

В моем понимании, соль должна быть:

а) уникально для каждого пользователя (в противном случае протечка соли позволит строить rainbow table для конкретной соли для расшифровки паролей), так hash("secretKey777" + password) не вариант для меня. b) криптографически случайный (у меня нет аргумента для этого, это просто ощущение, что это помогает).

Я предпочел бы

hash("secretKey777" + cryptographically_random_salt_string + password);