2011-07-05 27 views
-1

我遇到了一個工具WINMD5FREE,它爲每個文件生成一個唯一的散列碼。它接受任何文件類型並給出33bit散列碼的輸出。無論如何,要顛倒這個過程來從這個哈希代碼中獲取文件嗎?散列和反整理文件

還有一個公平的疑問。在下載一些流行的工具時,除了下載鏈接外,還有其他Md5,SHA等鏈接,這些代表了什麼?

+2

你認真地詢問是否可以向下壓縮所有文件到33位,然後通過解壓縮這些33位獲得完整的內容只退

?你甚至停下來考慮聽起來不太可能嗎? – Theo

+0

Theo-我在我的問題中提到了一個工具。如果沒有辦法扭轉這個過程,那麼將它轉發到哈希代碼有什麼用處呢? – lock

+0

但該工具只能進行哈希處理,但不會逆轉該過程。 – lock

回答

3

你似乎誤解了散列碼。它們被製成不可逆轉的。

你可以將它們用於各種事物。假設您想知道兩臺計算機上是否有相同的文件,但該文件太大而無法通過網絡發送,只需計算每臺計算機上文件的哈希碼(如果獲得相同的數字,則文件相同)如果一個位不同,你將得到不同的哈希碼。

哈希碼也用於密碼驗證。當你註冊一個網站時,你輸入你的密碼。該字符串被散列並存儲在數據庫中。由於哈希密碼是不可逆的,所以沒有人可以找到你的密碼(有些注意事項我們不會進入這裏)。當你想登錄時,你再次輸入你的密碼,系統對該字符串進行散列處理,並將其與它存儲在數據庫中的內容進行比較。如果散列字符串匹配,則可以確信(再次,有一些注意事項)您輸入正確的密碼。瞭解更多關於http://en.wikipedia.org/wiki/Hash_code

+0

第二段被懷疑......但我在google上發現了許多工具來解碼MD5哈希。對於例如http://www.techfreakstuff.com/2010/02/tools-decrypt-md5-hash-online.html – lock

+0

他們使用反向查找表(我沒有考慮的一個注意事項)。基本上他們已經預先計算了很多字符串的散列碼。 @fyr在他的回答中提到了彩虹表,谷歌爲此。嘗試散列一張圖片或一大塊文本並搜索該散列碼,您將無法找到它。 – Theo

+0

是的,我無法解碼文件的散列。可以找到幾個字符串的散列碼,因爲它們使用流行的散列算法。 – lock

0

鏈接代碼通常是單向街道。設計這些散列函數/算法時的意圖是使其很難扭轉這個過程。

通常它們是爲了快速生成一個字符串的「唯一」標識符。給定相同參數/算法的字符串總是會轉換爲相同的散列值。即使只更改一個字符,它也可能會翻譯成不同的內容,但結果總是相同的。

爲了恢復目的,ppl生成大型表格,即所謂的彩虹表格來扭轉這一過程。你可以通過例如顛倒散列。蠻力。

除了一個評論:散列算法總是生成固定長度散列。因此這些散列計算不是雙射的。不是雙射意味着兩個字符串有可能被映射到相同的散列。所以如果你蠻橫的東西可能會有一些誤報。

作爲進一步增加暴力時間在某種程度上取決於輸入中允許的字符的最大數量。正如評論者所說,它幾乎不可能扭轉文件的散列。

+0

無法保證「反向」結果實際上與原始結果完全相同,或者只是散列衝突。對於密碼來說,至少有一些結果與原始結果相同的可能性,但對於完整的文件來說,該機會無限大。 – Thorarin

+0

我沒有說明我認爲散列算法顯然不是雙射的。不是雙射意味着有碰撞。但是,感謝評論我擴大了我的答案有點更加完整。 – fyr