Hash 使用用户';在散列类似于散列(username_str+;password_str)的密码时,将用户名作为salt?

Hash 使用用户';在散列类似于散列(username_str+;password_str)的密码时,将用户名作为salt?,hash,salt,Hash,Salt,我应该使用一个秘密字符串作为salt进行散列,还是让每个用户都有自己的salt进行散列更好 考虑以下三种散列: hash("secretKey777" + password); hash("secretKey777" + username + password); hash(username + password); 哪一个最难破解,最安全?我认为最好使用hash(“secretKey777”+用户名+密码)因为每个用户不仅有“secretKey777”作为salt,还有自己的用户名。如果对密

我应该使用一个秘密字符串作为salt进行散列,还是让每个用户都有自己的salt进行散列更好

考虑以下三种散列:

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

哪一个最难破解,最安全?我认为最好使用
hash(“secretKey777”+用户名+密码)因为每个用户不仅有“secretKey777”作为salt,还有自己的用户名。如果对密码进行哈希运算的代码泄漏,则不会同时对所有哈希运算进行攻击-每个哈希运算都有自己独特的salt。

据我所知,salt必须:

a) 每个用户都是唯一的(否则,泄露salt将允许为您的特定salt构建一个解密密码的密码库),因此
哈希(“secretKey777”+密码)
不是我的选择。 b) 加密随机性(我对此没有任何论据,只是感觉这很有帮助)

我宁愿

hash("secretKey777" + cryptographically_random_salt_string + password);

这可能更适合@MikeW谢谢,我刚才也在那里问过了。以下是链接: