md5編碼可以反編碼出來麼?

戀戀女生


MD5一般不可逆,很難反編碼出來,要破解的話,需要暴力破解,一個個明文去遍歷,看看是否匹配密文,這是十分耗時和耗費計算資源的過程。

MD5是對一段信息(Message)產生信息摘要(Message Digest),每個明文的MD5值是不同的,如果明文被改動了,其MD5值也會發生改變。

通常我們下載文件時會比較預先提供的MD5值和實際下載得到文件的MD5值,如果兩者不同,說明下載得到的文件出錯了或者文件被篡改了。

另外一種用途是數字簽名,防止信息在傳輸過程中被篡改,保證信息的完整性,也可以防止信息發送方的抵賴。


夏洛4456


先說結論: 永遠不可以。


普及一下md5是什麼吧,它是一種把任意長度的文本轉化成固定長度的md5值的算法。

它是一種信息安全領域常用的算法,又稱為hash算法或者雜湊函數

把消息的md5值作為消息摘要附在消息後面,傳給接收方。接收方計算消息的md5值並和發送方傳遞的md5值比對,如果一致則驗證通過。這樣,我們就保證了消息的完整性(即消息沒有被人篡改)

md5並不是一種加密手段,它是不可逆的運算。為什麼這麼說呢,因為計算方法本身不是單射,理論上,任何一個md5值都可以映射無窮多個文本。

那麼,攻擊者是不是可以偽造一段md5值相同的信息呢?

答案是不行的,這和md5的特性有關,你無法偽造一份明文,使得它的md5剛好等於你已知的值。

我們看一下md5的幾大特性。

單向限門

計算任意長度文本的md5值是很容易的,反過來通過md5倒推原文本,是不可行的。



固定長度

任意長度的文本,計算出的md5的長度是一致的。不管你的文本是1個字符,還是一億個字符。這種特性給安全協議的設計造成很大便利。

雪崩效應

哪怕兩段長文本只有一個字符不同,其md5值也會差別巨大,這樣可以防止攻擊者利用頻率攻擊等手段破譯



抗碰撞性

其實這裡又可以細分為抗弱碰撞性和抗強碰撞性。抗弱碰撞的意思是給你一段文本,你無法偽造一份有相同md5的文本。抗強碰撞的意思是你無法制造兩段文本,使他們md5相同。

曾經的md5可以達到抗強碰撞性。但是由於王小云教授發現了md5算法的漏洞,現在md5已經不具備抗碰撞性了。在安全性要求較高的應用場景,採用的是SHA_1這樣的更安全的hash算法。


希望我的回答能夠幫助你,有任何疑問可以私信我或者評論區留言,謝謝。


戰神猴哥


首先回答你:不可以

專業的就不講了,舉個例子吧:如果我有一種編碼方式,比如把235編碼成10,把5356編碼成19,聰明的你可以注意到,這是採用逐位求和來進行編碼的算法(我只是舉個例子,肯定不會有這麼低級的編碼方式),也就是說,對於235來說,10就是我們“md5”後的東西,但是反過來,我們知道10,卻無法得知編碼前的值是235、還是19、還是22222。。。。。


程序界一帥


MD5加密是一種離散加密,其最大的特點是唯一性,不可破解性。這種加密方法只完成加密過程,從理論上各實踐上,都認為不能進行反編譯。因為任何一個數據不論其長度、大小、語種等特徵,加密後的長度都是一樣的,原始數據和加密後的數據之間是“單行道”,不可能從加嘧串找出原始數據。於是,你就發現了……他是不能反編譯的……一般應用的時候都是通過比較兩個值的md5加密後的值是否相同來判斷的……


分享到:


相關文章: