可能重复:
How does password salt help against a rainbow table attack?
在你提到之前,我已经阅读this question.我没有关注。
这是我对盐/彩虹表的理解。请纠正我错在哪里。
用户输入原始password
。
password
与salt
连接,以提供passwordsalt
或saltpassword
。
passwordsalt
/ saltpassword
经过哈希值hash
。
输入黑客。
黑客使用彩虹表将hash
转换为passwordsalt
/ saltpassword
。
黑客掌握(示例)字符串letmein1horse
。
鉴于letmein1horse
,这不仅仅意味着有两个选项:
密码为letmein1
,盐为horse
。
密码为horse
,盐为letmein1
。
所以你明白为什么我很困惑。我的理解显然是有缺陷的,因为如果它是如何工作的,显然盐就没用了。
或:我的理解是否正确,这是整个迭代方案完全解除了这个明显的弱点?
答案 0 :(得分:2)
彩虹表可以帮助您从哈希变为具有有限字符集的短序列。例如,彩虹表可能支持所有长度小于10个字符的字母数字序列。
盐更长,使用更宽的字符集。如果使用128位随机盐,则创建彩虹表会变得难以处理。
答案 1 :(得分:0)
攻击者无法创建散列值(密码+盐)的预计算查找表(即彩虹表),因为它需要对每个盐进行大量计算。一个简单的字典攻击仍然是非常可能的,虽然它要慢得多,因为它无法预先计算。 source