2010-04-02 87 views
5

我在想,如果有人能夠詳細解釋,連鎖店在彩虹表中的工作方式與完全新手一樣,但與編程相關。連鎖店如何在彩虹桌上工作?

我知道一個鏈是16個字節長。 8個字節標記起點,8個標記結束。我也明白,在文件名中,我們的鏈長是2400.這意味着我們的起點和終點之間只有16個字節,我們有2400個可能的明文,什麼?這是如何運作的?在這16個字節中,我如何獲得2400個哈希和明文,或者我誤解了這些?

非常感謝您的幫助。

謝謝。

P.S .:我已經閱讀了相關論文,並將這個主題進行了一些簡單的搜索。我想我只是錯過了一些重要的東西來使這些齒輪轉向。

+0

你想破解密碼嗎? – bmargulies 2010-04-02 22:22:59

+0

不,我想了解如何使用起點和終點來生成明文和散列。添加我也理解64位int如何轉換爲字符串。只是想了解2400次哈希來自哪裏。 – 2010-04-02 22:26:16

回答

3

瞭解哈希鏈的起點,您可以通過重複應用哈希和減法函數來計算所有中間值和終點。

當您想要搜索散列密碼鏈時,終點出現了。將哈希和減少應用到鏈長度的次數;在每個階段,請查看您的中介是否與您計算的任何鏈的端點匹配。如果是這樣,那麼你已經找到了包含密碼的鏈。然後你知道鏈的起始位置,因爲你已經存儲了它的起始點,所以你可以輕鬆地從這裏通過鏈向前走,找到密碼,當散列一次時,產生散列值。

完整的彩虹表過程應用這種搜索方式,但有一系列不同的簡化函數以避免散列衝突;我對細節不太熟悉。

+0

這是否意味着散列永遠不會計算鏈的端點?我的理解是:因爲它結束鏈哈希函數從來沒有應用到它,如[插圖](https://upload.wikimedia.org/wikipedia/commons/thumb/7/78/Rainbow_table1.svg/1200px-Rainbow_table1 .svg.png)來自[Wikipedia article](https://en.wikipedia.org/wiki/Rainbow_table)。或者我在這裏失去了一些東西? – 2017-11-22 07:24:00

+0

這是一個很好的[在crypto.stackexchange上的答案](https://crypto.stackexchange.com/a/5901/53497),解釋鏈的確切計算方式。 – 2017-11-26 12:59:46