Hash

查找 MD5 雜湊的部分原像

  • November 9, 2012

我對使用MD5進行散列有以下要求。

H(A,B,C,X);

其中給出了值 A、B 和 C。但是沒有給出 X。

我想知道 X 的什麼值會給出一個以 32 個 1 位開頭的散列

含義 H(A,B,C,X) = 以 32 個“1”位開頭

我可以通過測試 X 的各種字元來蠻力,直到我得到 32 個“1”位。

但是有沒有比這樣做更快的方法?

經過大量研究,您實際上可以使用 CUDA 對您的程序進行程式以使用 GPU 執行,這非常快。

或者,您可以使用顯卡實用程序直接執行您的程序。網站上給出的範例:http: //acer-scandic.custhelp.com/app/answers/detail/a_id/9073/~/assigning-a-graphics-card-to-an-application-with-nvidia-optimus

這比正常執行蠻力程序要快一些。

簡短的回答:不,你不能,MD5 並沒有那麼壞。

長答案:如果您真的需要這樣做,筆記型電腦 i5 每秒可以嘗試 500 萬次 MD5 雜湊;平均而言,您將不得不嘗試 2^32 ~ 43 億次雜湊,因此在任何體面的遠端現代 CPU 上都只需幾分鐘。

引用自:https://crypto.stackexchange.com/questions/5271