在散列像hash(username_str + password_str)这样的密码时,将用户的用户名用作盐是一个好主意吗?

时间:2014-10-10 21:20:48

标签: hash salt

我是否应该使用一个秘密字符串作为哈希值,或者让每个用户使用自己的哈希值进行散列更好?

考虑这三个哈希:

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

哪一个是最难破解的,最安全的?我认为最好使用hash("secretKey777" + username + password);,因为每个用户不仅拥有" secretKey777"作为一个盐,但也有自己的用户名。如果密码泄漏的代码泄漏,则不会立即攻击所有哈希值 - 每个哈希值都有自己独特的盐。

1 个答案:

答案 0 :(得分:-1)

根据我的理解,盐必须是:

a)每个用户都是唯一的(否则,泄漏盐将允许为您的特定盐构建rainbow table来解密密码),因此hash("secretKey777" + password)不适合我。 b)密码随机(我没有争论,只是感觉这有帮助)。

我更喜欢

hash("secretKey777" + cryptographically_random_salt_string + password);