2010-06-15 44 views
10

我想,這是不可能解碼md5散列,但我發現工具,它們解碼它們here。但我不知道,他們是如何在如此短的時間內完成的(大約需要一秒)。md5解碼。他們怎麼做?

請幫我理解它。

感謝

+4

它在網站上告訴你:「這個工具在多個數據庫中搜索未經編碼的MD5哈希版本。」 - 基本思想:很多人在數據庫中添加隨機MD5哈希,並且只需在進入時反向查找它們哈希值。與解碼無關。 – poke 2010-06-15 21:17:34

+1

爲什麼很難想象?磁盤空間很便宜。在MySQL中(假設密鑰少於255字節),每行只能在40到300字節之間。所有你需要做的就是編寫一個腳本來解析一個字典並添加每個單詞的md5 ...... – ircmaxell 2010-06-15 21:20:51

+1

即使使用普通單詞的md5哈希也能產生好的效果。 – 2010-06-16 13:51:40

回答

19

它不解碼MD5散列。它使用所謂的rainbow table ...這就是爲什麼使用salted hashes而不是直接存儲散列非常重要...

+2

鹽漬的哈希仍然可以被打破。 – rook 2010-06-15 21:35:07

+0

從技術上講,彩虹表甚至不適用於這種情況,因爲有無數的可能的字符串被散列。該網站只是使用「常見」散列數據庫。 Rainbow tables!=數據庫查詢。 – Charles 2010-06-15 22:04:29

+1

@Charles,我沒有看到網站描述他們確切的數據庫模式的任何地方,所以我不清楚爲什麼你已經斷定沒有彩虹表。 – 2010-06-15 22:41:12

0

一般,這仍然是難以計算的。但是,rainbow tables有助於查找已知的預先圖像。它僅在預映像基於常用字符串(例如字典單詞)且不使用鹽時才起作用。這就是他們所說的「這個工具搜索多個數據庫」。

4

這是不可能的解碼MD5哈希,因爲它是一種單向算法,他們將有一個預先計算的散列數據庫以及用於生成散列並執行查找的字符串。

2

上面清清楚楚地寫着:這個工具搜索多個數據庫的MD5散列

3

的未編碼版本的Web頁面實際上包含了答案:

該數據庫包含數以百萬計的MD5 哈希和他們的解密形式。

如果你散列一個像「Hello World」這樣稍微微不足道的字符串,那麼它就存在於該db中。但是輸入一些很奇怪的文字,比如「H3ll0 Whrrl3d!?!」並且「轉換」將失敗,因爲它不會存在於散列數據庫中。 (雖然我的 「怪異」 的字符串似乎越來越解碼?!?)

重要:


  • 注意從該網站:任何數據是MD5加密存儲進行查找。使用這種形式

笑不編碼的敏感數據。這就是爲什麼你與網站一起散列的任何東西都會以解碼的形式回來!每次你使用該網站進行散列操作時,都會增加數據庫的大小和容量!

+0

不是彩虹桌。 – Charles 2010-06-15 22:05:06