密码盐对彩虹表攻击有什么帮助?
我有点搞不懂把盐变成密码的目的。我的理解是,主要用途是阻止彩虹桌攻击。然而,我看到的实现这个问题的方法似乎并没有使问题变得更加困难。
我已经看过许多教程,建议将盐用作以下内容:
$hash = md5($salt.$password)
其原因是哈希现在不是映射到原始密码,而是密码和SALT的组合。但是说$salt=foo
和$password=bar
和$hash=3858f62230ac3c915f300c664312c63f
..现在,有彩虹表的人可以倒转哈希,并得到输入“foobar”。然后他们可以尝试所有密码组合(f,fo,foo,.Oobar,Obar,bar,Ar,Ar)。获得密码可能需要几毫秒,但其他时间不多。
我看到的另一个用途是在我的Linux系统上。在/etc/阴影中,哈希密码实际上是存储的。带着盐。例如,“foo”的盐类和“bar”的密码将散列如下:$1$foo$te5SBM.7C25fFDu6bIRbX1
..如果黑客以某种方式得到了这个文件,我看不出盐有什么用途,因为te5SBM.7C25fFDu6bIRbX
已知含有“foo”。
谢谢任何人都能在这上面撒点光。
编辑谢谢你的帮助。总结一下我所理解的,SALT使得散列密码更加复杂,从而使它更不可能存在于预先计算的彩虹表中。我之前误解的是,我假设所有的散列都有彩虹表。