好。比方说,我将密码的盐设置为“你好”。有人不能只看源代码并发现盐吗?如果是这样,我该如何隐藏它?感谢。
答案 0 :(得分:7)
Salts通常以密码哈希的形式存储在纯文本中。它们的主要原因是使用预先计算的rainbow tables更加困难,并且更难以对数据库中的所有密码执行dictionary attack。
您还应该为每个密码使用不同的随机生成的salt,而不是整个应用程序使用单个salt。这意味着每个密码必须单独破解。
答案 1 :(得分:5)
首先:安全性很难。不要尝试自己动手,因为将搞砸了。使用完善的库来处理用户身份验证。
其次,你似乎误解了盐的目的。盐只是为了防止密码哈希的轻松反转 - 每个用户应该有一个独特的盐,但是将盐存储在与哈希密码相同的位置是可以的。
答案 2 :(得分:3)
当盐是动态的时(例如成员的加入日期),盐是最好的。即使攻击者知道计算哈希的方式,他们也必须强力每个盐渍和哈希密码 - 这需要花费大量时间,因为(一般情况下)小奖励。
话虽如此,如果攻击者正在查看您的代码服务器端,那么您已经有了更多更大的问题。
答案 3 :(得分:1)
1)不要对多个帐户使用相同的盐。如果您无法显示源代码并相信您的密码仍然安全,那么您就错了。
答案 4 :(得分:0)
希望您的“源代码”在Web服务器上运行,而不是在客户端(javascript)上运行,任何人都可以看到它。