2017-08-21 39 views
0

ร編碼爲0f93821e0fbc6d3736da7df2c73024aa解碼MD5散列成Unicode

我在想,如果有可能的哈希解碼成Unicode的形式。如果是這樣,我該如何解決這個問題,或者我該如何執行此操作。

任何幫助表示讚賞,謝謝。

回答

0

Whites11提到了蠻力,但是考慮到這不是'解碼'哈希。這只是簡單地散列公共輸入,然後比較這兩個哈希以查看它們是否匹配,除非您有一組實際可能匹配哈希的通用輸入。

哈希是故意單向的,我想不出爲什麼你需要或者你需要重新思考你正在做的任何項目的邏輯。總之,你不能解碼一個散列,這是故意的,這就是爲什麼存在散列算法的原因。而蠻力是散列常見的投入,看看他們是否符合你的散列。它通常用於密碼破解等常見的密碼數據集。所以你的情況可能沒有用處。

http://www.md5online.org是bruteforcing的一個很好的例子,它是一個先前暴力破解/測試哈希和它們的unicode輸入的數據庫。您可以嘗試散列一個基本詞,如「密碼」並將其扔到那裏,如果它是已知的散列,它應該顯示原始的unicode輸入!

編輯:這裏有2個覆蓋哈希算法和暴力破解哈希了卓越的信息視頻: https://www.youtube.com/watch?v=b4b8ktEV4Bg https://www.youtube.com/watch?v=7U-RbOKanYs

+0

@qttqtt沒問題的伴侶。如果你看看我的編輯,有兩個關於散列算法和暴力強制哈希的主題的真正好的視頻(傢伙使用大學的超級計算機進行酷炫的暴力破解)。 –

1

m5d是一種哈希算法,它本質上是單向的。

你只是不能「解碼」它。

你唯一的選擇是bruteforcing。

+0

是否有可能從暴力破解獲得一個Unicode輸出? –

+0

Bruteforcing意味着您測試所有可能的輸入組合(包括輸入與Unicode字符),直到找到相應的md5散列。 – whites11

1

散列的整點是爲任意輸入顯示一個固定長度的輸出,其屬性是相同的輸入導致相同的輸出。像MD5或SHA-1這樣的加密散列函數的設計甚至不能輕易顛倒過來。因此,不,你不能那樣做。另外,就像一個思維練習一樣,它表明在一般情況下它不能工作:MD5是128位長,所以如何恢復比這更大的輸入?有無數的字符串變成相同的摘要,所以雖然你可以找到a具有相同散列的字符串,但你不能保證找到你開始使用的字符串。

+0

好的,謝謝你的信息。 @ whites11提到了bruteforcing的一些事情,我會放棄這一點。 –

+0

這就是我在最後一段提到的部分,它找到了一個具有相同散列的字符串。在任何情況下,由於散列算法對字節序列進行操作,爲了有望獲得原始字符串,您還需要知道使用了哪種Unicode編碼以及是否應用了規範化(以及哪種)。一般來說,你所提出的問題是相當荒謬的,因爲答案僅僅是「不」。所以我懷疑你的實際問題和目的稍有不同。 – Joey