5

我想知道是否有人可以详细解释一下,链如何在彩虹表中工作,就像你对一个完整的新手一样,但与编程相关。

我知道一个链长 16 个字节。8 个字节标记起点,8 个字节标记结束。我也知道在文件名中我们有链长度,即 2400。这意味着在我们的起点和终点之间只有 16 个字节,我们有 2400 个可能的明文,什么?这是如何运作的?在这 16 个字节中,我如何获得 2400 个哈希和明文,还是我误解了这一点?

非常感谢您的帮助。

谢谢。

PS:我已经阅读了相关论文并在谷歌上搜索了这个主题。我想我只是错过了一些重要的东西来让这些齿轮转动。

4

1 回答 1

3

知道哈希链的起点,您可以通过重复应用哈希和归约函数来计算所有中间体和终点。

当您想在链中搜索散列密码时,终点就出现了。将 hash-and-reduce 应用到链长的次数;在每个阶段,查看您的中间是否与您计算的任何链的端点匹配。如果是这样,那么您已经找到了包含密码的链。然后,您知道链从哪里开始,因为您已经存储了它的起点,因此您可以轻松地从那里向前遍历链以找到密码,该密码在哈希一次时会产生哈希值。

完整的彩虹表过程应用了这种搜索,但使用了一系列不同的归约函数来避免哈希冲突;我对细节不是很精通。

于 2011-05-06T12:53:00.130 回答