我知道無法將MD5散列逆轉回其原始值。但是,如何生成一組隨機字符,以便在散列時提供完全相同的值?那可能嗎?MD5散列逆轉
MD5散列逆轉
回答
找到匹配給定的MD5哈希可通過三種方式出現一條消息:
- 你猜的原始郵件。對於密碼和其他低熵消息,這通常相對容易。這就是爲什麼我們在這種情況下使用密鑰拉伸的原因。對於足夠複雜的消息,這變得不可行。
- 你猜大約2^127倍,並得到一個新的消息擬合散列。目前這是不可行的。
- 您利用通過加密分析獲得的特定散列函數的前映像攻擊。對於MD5 there is one, with a workfactor of 2^123,但這仍然不可行。
目前沒有有效的攻擊MD5的前映像電阻。
對MD5有高效的碰撞攻擊,但它們只允許攻擊者使用相同的散列構造兩個不同的消息。但它不允許他爲給定的散列構造消息。
有兩件事情:1)由於生日悖論,隨機衝突的概率實際上大約是2^64,而不是128比特散列的2^128。 2)Wang和Yu(發現相同散列算法的人)發表了關於MD5攻擊的文章,可以在短短15分鐘內完成(用他們的話來說);請參閱merlot.usc.edu/csac-f06/papers/Wang05a.pdf。 – Palladium 2012-07-31 21:24:13
@鈀這兩個適用於碰撞,而不適用於預先圖像。我知道有高效的碰撞攻擊,並提到它是最後一句話。查找匹配給定散列的消息不會發生碰撞,而是預映像。所以這些攻擊在這裏不相關。 – CodesInChaos 2012-07-31 21:25:51
我曾經認爲哈希基本上是一個函數,如f(x + z)= y。如果我們給出y = 100,我們永遠不會知道x和z。他們可以是50和50或者11.111和88.889等等,但是我們可以輸入20和80來獲得函數並且獲得100而不知道真正的x和z。我想知道如果使用MD5這種方法是可行的。 – Egemenk 2012-07-31 21:28:17
是的,它可能會碰到一個碰撞(因爲你從一個更大的空間映射到一個更小的空間,這是你可以假定最終發生的事情)。其實MD5
在這方面已經被認爲是「破」了。
從wiki:
然而,它已被表明,MD5 不是碰撞 抗性; [3]如這樣,MD5是不適合於像SSL 證書的應用程序或依靠數字簽名這個性質。在1996年,MD5的設計發現了一個缺陷,雖然它不是一個明顯致命的弱點,但密碼學家開始推薦使用其他算法,如SHA-1--後來發現它也是 脆弱。 2004年,在MD5中發現了更嚴重的缺陷,使得 進一步將該算法用於安全目的 有疑問 - 一組研究人員描述瞭如何創建一對共享相同MD5校驗和的文件[4] [ 5] 2005年,2006年和2007年,MD5進一步取得進展。[6]在2008年12月的 中,一組研究人員使用這種技術來僞造SSL 證書有效性[7] [8],US-CERT現在說MD5「應該是 ,認爲是密碼破壞,並且不適合進一步使用 。」[9 ]和大多數美國政府應用程序現在都需要SHA-2 散列函數系列。[10]
OP不希望發生碰撞,他想要一個預映像。 – CodesInChaos 2012-07-31 20:57:54
@CodesInChaos:我想他會問是否可能發生碰撞。我不明白他想要某種算法來生成序列 – Cratylus 2012-07-31 20:59:10
我認爲他有給定的md5哈希值,並且想要一些符合它的消息。碰撞攻擊不提供這個。 – CodesInChaos 2012-07-31 21:05:40
從某種意義上說,這是可能的。如果你有比散列本身更長的字符串,那麼你將會碰撞,所以這樣的字符串將存在存在。
但是,找到這樣的字符串將等同於反轉散列,因爲您會發現散列到特定散列的值,所以它不會比以任何其他方式反轉散列更加可行。
對於MD5具體?是。
幾年前,發表了一篇關於利用MD5哈希的文章,該文章允許輕鬆生成數據,當哈希得到所需的MD5哈希時(他們實際上發現的是一種查找數據集的算法使用相同的散列,但你會得到如何以相反的方式使用它)。您可以閱讀here原理的概述。 SHA-2沒有找到類似的算法,儘管未來可能會改變。
對md5沒有有效的攻擊,它允許你構造一個匹配給定散列的消息。 – CodesInChaos 2012-07-31 21:03:53
是的,你在說什麼叫做碰撞。任何哈希機制中的衝突是當兩個不同的明文在運行哈希算法後創建相同的哈希時。
- 1. md5散列值更改
- 2. md5/sha1散列大文件
- 3. 使用md5散列密碼
- 4. PHP加起來MD5散列?
- 5. 從char生成MD5散列[]
- 6. 填充MD5散列算法
- 7. 消息摘要散列MD5
- 8. 組合MD5散列值
- 9. 如何使用md5散列?
- 10. C#MD5散列器例如
- 11. iOS:NSString的可逆散列?
- 12. MD5散列在C#中不匹配MD5散列在行動腳本
- 13. Python MD5散列相同的內容返回不同的散列
- 14. 使用SHA-512和salt來散列MD5散列密碼?
- 15. MD5散列算法使用哪種類型的轉換?
- 16. 將文件名轉換爲文件的md5散列
- 17. MD5等作爲散列函數
- 18. Spring Security LDAP和MD5散列密碼
- 19. Rails中的特定md5散列方案
- 20. 將MD5散列表示爲整數
- 21. MD5散列函數在excel中?
- 22. 等效MD5在linux散列的命令
- 23. C++ OpenSSL:基於md5的64位散列
- 24. 生成MD5散列字符串T-SQL
- 25. Java ME中的MD5密碼散列
- 26. md5散列返回,封裝在swift中
- 27. 使用散列MD5對DES加密
- 28. 如何逆向工程散列函數
- 29. 通過SHA1散列密碼與MD5,SHA1和MD5
- 30. 無法將MD5散列轉換爲Ionic中的陣列緩衝區
在google中搜索reverse md5。 – 2012-07-31 20:56:04
你想知道什麼?如果有多條消息適合哈希,或者如果您可以有效地構造適合給定哈希的消息? – CodesInChaos 2012-07-31 21:07:20
你「知道」錯了;)這是可能的;只是很難。 – 2012-08-01 18:36:42