雜湊 – MD5反向身份:(X,Y)存在,使得md5(X)= Y,md5(Y)= X
存在兩個相互雜湊的128位值嗎?
Find (X,Y) such that md5(X) = Y and md5(Y) = X
他們可以毫無暴力地被發現嗎?
額外信用:
我是否允許彌補“md5-itive逆身份”一詞?
解決方案集將是稀疏的,如果不是空的.
對於你的LOL今天,這裡你去:
ofollow,noindex" target="_blank">https://github.com/flipmcf/playground/tree/master/md5-inverse-search
有關:
時都發現這兩個答案)…
回答問題(1),考慮以下幾點:
Brute forcing all md5(x)=x means checking 2.4×10^38 values. My quick test implementation can test some 2.3×10^9 values per hour, meaning it would take almost exactly 10^29 hours to brute force it.Let’s say I get a million people to help me out, then we’re down to 10^23 years.. And let’s say the algorithm gets a million times faster with some clever optimization, and we’re down to 10^17 years. And let’s pretend computers get a million times faster over night, and we’re down to 10^11 years, which is significantly longer than the universe has existed for.
我會想像一下這些智慧力演算法†可以更快地剔除上述內容.
為了回答問題(2),以下兩個塊具有相同的md5雜湊:
d131dd02c5e6eec4693d9a0698aff95c 2fcab58712467eab4004583eb8fb7f89 55ad340609f4b30283e488832571415a 085125e8f7cdc99fd91dbdf280373c5b d8823e3156348f5bae6dacd436c919c6 dd53e2b487da03fd02396306d248cda0 e99f33420f577ee8ce54b67080a80d1e c69821bcb6a8839396f9652b6ff72a70
和
d131dd02c5e6eec4693d9a0698aff95c 2fcab50712467eab4004583eb8fb7f89 55ad340609f4b30283e4888325f1415a 085125e8f7cdc99fd91dbd7280373c5b d8823e3156348f5bae6dacd436c919c6 dd53e23487da03fd02396306d248cda0 e99f33420f577ee8ce54b67080280d1e c69821bcb6a8839396f965ab6ff72a70
兩個塊(位元組39,91,119,167,219和247)之間的6個位元組不同,雜湊是79054025255fb1a26e4bc422aef54eb4.我可以想象,這些塊是通過某種智慧力演算法†發現的,儘管我不清楚.
†:強力考慮了md5的分析弱點
http://stackoverflow.com/questions/946580/md5-inverse-identity-does-x-y-exist-such-that-md5x-y-and-md5y-x