攻击者被 “允许” 知道盐-必须以某种方式设计安全性,即使知道盐也仍然是安全的。
盐有什么作用?
盐有助于使用预先计算的“彩虹表”防御暴力攻击。
盐会使暴力破解者的攻击者(在时间/内存方面)更加昂贵。
计算这样的表是昂贵的,并且通常仅在它可以用于多个攻击/密码时才进行。
如果您对所有密码使用相同的盐,那么攻击者可以预先计算出这样的表,然后将您的密码暴力破解为明文…
只要您为每个想要生成的密码生成一个新的(最佳加密强度)随机盐存储哈希值没有问题。
如果您想进一步加强安全性,则
可以多次计算哈希(哈希等)-这虽然不花很多钱,但会使蛮力攻击/计算“彩虹表”的成本更高。 ..请不要发明自己-
有行之有效的标准方法,请参见例如http://en.wikipedia.org/wiki/PBKDF2和http://www.itnewb.com/tutorial/Encrypting-
Passwords使用PHP来使用RSA-
PBKDF2-Standard进行存储
注意:
由于“ CPU时间”(可用于彩虹表/蛮力之类的攻击)越来越广泛地被使用,因此, 如今 使用这种机制已成为一种 挑战 。例如,Amazon
Cloud服务在最快的前50名中排名第一全球超级计算机,任何人都可以使用它的数量相对较少)!



