Hash
查找 MD5 雜湊的部分原像
我對使用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 上都只需幾分鐘。