彩虹表中的链是如何工作的?

5
我想知道是否有人可以向一位完全的新手解释彩虹表中链的详细工作原理,但要涉及到编程方面的相关内容。
我了解到一个链的长度为16个字节。其中8个字节标记起始点,另外8个字节标记终止点。我也明白在文件名中我们有链的长度,例如2400,这意味着在我们的起始点和终止点之间的16个字节中,我们有2400个可能的明文,这是怎么回事?在这16个字节中,我如何获得我的2400个哈希值和明文,或者我误解了什么?
非常感谢您的帮助。
谢谢。
P.S .:我已经阅读了相关论文并谷歌了这个话题。我想我只是缺少一些重要的东西来推动这些齿轮。

你想要破解密码的帮助吗? - bmargulies
不,我想了解如何使用起始点和结束点生成清晰的文本和哈希。另外,我也理解64位整数如何转换为字符串。只是想了解2400个哈希值来自何处。 - James Moore
1个回答

3

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

在搜索链以查找已哈希密码时,终点非常重要。将哈希和减少函数应用到链长次数,在每个阶段查看您的中间值是否与您计算的任何链的终点匹配。如果是,则您已经找到包含密码的链。然后,您知道链从哪里开始,因为您已经存储了它的起点,所以您可以轻松地沿着链向前走,从而找到当哈希一次时会产生哈希值的密码。

完整的彩虹表过程使用不同减少函数族进行这种类型的搜索,以避免哈希冲突;我对细节不够熟悉。


这是否意味着哈希从未计算链的端点?我的理解是:当它结束链时,哈希函数不会应用于它,如Wikipedia文章中的插图所示。或者我在这里漏掉了什么? - user8554766
这里有一个很好的加密堆栈交流网站上的答案,解释了链是如何计算的。 - user8554766

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接