关于盐渍密码的问题

时间:2011-01-12 22:07:27

标签: php mysql hash salt

好。比方说,我将密码的盐设置为“你好”。有人不能只看源代码并发现盐吗?如果是这样,我该如何隐藏它?感谢。

5 个答案:

答案 0 :(得分:7)

Salts通常以密码哈希的形式存储在纯文本中。它们的主要原因是使用预先计算的rainbow tables更加困难,并且更难以对数据库中的所有密码执行dictionary attack

您还应该为每个密码使用不同的随机生成的salt,而不是整个应用程序使用单个salt。这意味着每个密码必须单独破解。

答案 1 :(得分:5)

首先:安全性很难。不要尝试自己动手,因为搞砸了。使用完善的库来处理用户身份验证。

其次,你似乎误解了盐的目的。盐只是为了防止密码哈希的轻松反转 - 每个用户应该有一个独特的盐,但是将盐存储在与哈希密码相同的位置是可以的。

答案 2 :(得分:3)

当盐是动态的时(例如成员的加入日期),盐是最好的。即使攻击者知道计算哈希的方式,他们也必须强力每个盐渍和哈希密码 - 这需要花费大量时间,因为(一般情况下)小奖励。

话虽如此,如果攻击者正在查看您的代码服务器端,那么您已经有了更多更大的问题。

答案 3 :(得分:1)

1)不要对多个帐户使用相同的盐。如果您无法显示源代码并相信您的密码仍然安全,那么您就错了。

2) PKCS #5 v2.1, section 4

答案 4 :(得分:0)

希望您的“源代码”在Web服务器上运行,而不是在客户端(javascript)上运行,任何人都可以看到它。