是否可以僅使用校驗和系統傳輸大文件,然後通過計算重建原始文件?只使用校驗和傳輸文件?
假設您傳輸文件的MD5校驗和和文件的大小。通過製作一個「虛擬文件」並計算它的校驗和,嘗試每一個位組合,你最終應該「到達」原始文件。但在途中,您也會遇到許多「校驗和」匹配的「衝突」。
因此,我們將原始文件的第一個字節更改爲某個指定的值,再次計算校驗和,並將其發送出去。如果我們在虛擬文件中進行相同的替換,我們可以測試每個「碰撞」以查看它是否仍然匹配。這應該縮小一點,我們可以多次這樣做。
當然,這樣做的計算能力將是巨大的。但是在理論上是可能的,你需要多少校驗和來轉移某些東西(比如1mb)?或者可能需要傳輸校驗和的數據量幾乎與文件一樣大,從而使其毫無意義?
MD5應該是單向的。 – miku 2011-01-21 13:09:44
MD5確實有碰撞。 (Wang and Yu 2009) – kvista 2011-01-21 13:13:25