回覆列表
-
1 # 夏洛4456
-
2 # 春哥評說
專業的就不講了,舉個例子吧:如果我有一種編碼方式,比如把235編碼成10,把5356編碼成19,聰明的你可以注意到,這是採用逐位求和來進行編碼的演算法(我只是舉個例子,肯定不會有這麼低階的編碼方式),也就是說,對於235來說,10就是我們“md5”後的東西,但是反過來,我們知道10,卻無法得知編碼前的值是235、還是19、還是22222。。。。。
MD5一般不可逆,很難反編碼出來,要破解的話,需要暴力破解,一個個明文去遍歷,看看是否匹配密文,這是十分耗時和耗費計算資源的過程。
MD5是對一段資訊(Message)產生資訊摘要(Message Digest),每個明文的MD5值是不同的,如果明文被改動了,其MD5值也會發生改變。
通常我們下載檔案時會比較預先提供的MD5值和實際下載得到檔案的MD5值,如果兩者不同,說明下載得到的檔案出錯了或者檔案被篡改了。
另外一種用途是數字簽名,防止資訊在傳輸過程中被篡改,保證資訊的完整性,也可以防止資訊傳送方的抵賴。