我在阅读与盐和密码哈希相关的几篇文章时,有些人提到了彩虹攻击。什么是彩虹攻击,以及防止它的最佳方法是什么?
我在阅读与盐和密码哈希相关的几篇文章时,有些人提到了彩虹攻击。什么是彩虹攻击,以及防止它的最佳方法是什么?
维基百科的文章有点难以理解。简言之,你可以将彩虹表视为一个预先计算了哈希和密码的大型字典。
彩虹表与其他字典的区别仅在于条目存储的方法。彩虹表是针对哈希和密码进行优化的,因此在保持良好查找速度的同时实现了极佳的空间优化。但本质上,它只是一个字典。
当攻击者窃取您的密码哈希的长列表时,他可以快速检查其中是否有任何一项在彩虹表中。对于那些存在的密码哈希值,彩虹表还会包含从哪个字符串进行哈希的信息。
当然,有太多哈希值无法全部存储在彩虹表中。因此,如果一个哈希值不在特定的表中,黑客就没有办法了。但如果您的用户使用简单的英文单词并且您只对它们进行了一次哈希运算,则很可能良好的彩虹表会包含这个密码。
当有人使用彩虹表来破解密码时,这种情况就会出现。
如果您担心这个问题,可以使用盐值。此外,还有一个Stack Overflow问题可以帮助您更好地理解盐值,比维基百科更易懂一些...
这是一篇关于彩虹表的有用文章,主要涉及IT技术。建议您仔细阅读,以便更好地理解。文章链接:http://kestas.kuliukas.com/RainbowTables/
虽然我来晚了,但是我也知道彩虹表是一种攻击散列/无盐密码的方法。然而最近在Twitter上分享了http://codahale.com/how-to-safely-store-a-password/,根据你的需求和关注点不同,你可能无法通过加盐的方式来安全地存储密码。
希望这对你有所帮助。