散列时"盐"的目的是什么?

Krz*_*tof 11 hash saltedhash

好的,我想了解使用盐的原因.

当用户注册时,我为他/她生成一个我存储在DB中的唯一盐.然后我用SHA1散列它和密码.当他/她登录时我会重新哈希sha1($salt.$password).

但如果有人攻击我的数据库,他可以看到哈希密码和盐.

是否更难破解而不仅仅是用盐哈希密码?我不明白......

对不起,如果我是傻瓜......

Mar*_*ers 9

如果您不使用salt,则攻击者可以在密码< - >哈希数据库脱机到服务器之前进行预先计算.添加盐大量增加了该数据库的大小,使得执行此类攻击变得更加困难.

此外,一旦他们进入,他们可以猜出一个常用的密码,哈希,然后检查数据库中的所有密码是否匹配.对于每个用户使用不同的盐,他们一次只能攻击一个密码.

维基百科上有一篇关于加密盐的文章.