我有百萬符號密碼的MD5哈希和我要先999992個符號。我需要暴力破解8位數字。我可以預先安排第一個符號的散列(讓我們稱之爲基礎散列),然後只是粗暴8個字符長度的字符串,並將其散列添加到基礎散列,以使找到正確的傳遞更快?我應該使用什麼算法或什麼軟件可以幫助我?預計算MD5
預計算MD5
回答
是的,這是可能的。 MD5基於Merkle-Damgård construction,它執行塊中的散列。您可以散列許多塊,然後保存散列函數的狀態,並將其用作嘗試對其餘塊進行不同可能性的起點。
基於文檔(我沒有測試過),我覺得上一個Java MessageDigest
調用clone()
將複製散列函數的當前狀態。您可以使用它從已知字符構建部分哈希,然後爲每個猜測創建一個克隆。假設MD5實現實際上支持克隆。有機會(取決於你使用的語言和庫)你可能必須編寫自己的MD5實現。
請注意,MD5的塊大小是512位(64個字符),密碼長度(一百萬)是整數倍。這意味着你的密碼字符將完全填滿數據的最後一個塊,散列函數將需要填充的額外塊。因此,您將預先計算您知道的前999,936個字符的部分散列,然後從剩餘的56個字符中加上您猜測的8個字符中的最後一個數據塊,然後在此之後追加填充塊。
像Java的MessageDigest
的實現應該採取的將事情成塊的細節問題,但。您可以可能(再說一次,我沒有測試),只需創建一個MessageDigest
,叫digest(byte[])
與已知999992個字節,然後調用clone()
。
但我沒有多少時間,我只需要暴力只有一個密碼。有沒有可以做到的程序或圖書館? – michaeluskov
不是我所知道的,但我從來沒有去看過。這個網站是關於編程,而不是密碼破解,所以我正在解決你的編程問題,而不是你需要破解密碼。 – Wyzard
我試圖散列999936個符號,散列64個符號(最後8位數字= 0),然後將第一個散列的每個8個字節添加到第二個散列的每個8個字節。答案並不等於完整的100萬密碼。 – michaeluskov
- 1. C#MD5計算問題
- 2. Java計算MD5哈希
- 3. XMPP DIGEST-md5計算響應的算法
- 4. Android MD5問題計算MD5,缺少字符
- 5. 計算每個文件的MD5
- 6. 計算的Md5在服務器端
- 7. 計算MD5哈希值在二郎山
- 8. C#計算打開的文件的MD5?
- 9. 計算部分流的MD5哈希值
- 10. 無法計算MD5:AWS S3存儲桶
- 11. 計算大文件的Md5哈希
- 12. 計算MD5的長字符串
- 13. Python MD5哈希加速計算
- 14. AWS無法計算MD5哈希的Android
- 15. 計算Blob的MD5哈希值
- 16. 計算字符串的MD5散列階
- 17. 計算視頻文件的MD5(哈希)
- 18. 在線工具來計算MD5
- 19. 問題計算MD5哈希飼料
- 20. 預算選項計算器
- 21. SQL計算的預算
- 22. 計算預訂表總計
- 23. 計算預期值
- 24. Python中的分塊和總計MD5計算
- 25. 計算/預測方法
- 26. 警告計算預測值
- 27. 數學計算預訂期
- 28. 重新計算預測
- 29. 預計算值大表格
- 30. 計算預測得分
你在談論一個密碼,這是一個萬字的長,不是一百萬個不同的密碼,對不對? – Wyzard
是的。一個包含一百萬個charachter的密碼。我知道散列和除了最後8個字符以外的所有字符,並且希望快速找到正確的密碼。 – michaeluskov