md5加密原理簡單解釋


轉載:https://www.cnblogs.com/second-tomorrow/p/9129043.html

原文:md5加密原理簡單解釋

 

本文將通過漫畫的形式來通俗易懂的講述什么是MD5加密算法(Message Digest Algorithm MD5(中文名為消息摘要算法第五版)),MD5加密算法的底層原理以及MD5加密算法的破解算法方法。

 

【轉載】漫畫趣解 MD5 算法

【轉載】漫畫趣解 MD5 算法

【轉載】漫畫趣解 MD5 算法

【轉載】漫畫趣解 MD5 算法

【轉載】漫畫趣解 MD5 算法

【轉載】漫畫趣解 MD5 算法

【轉載】漫畫趣解 MD5 算法

【轉載】漫畫趣解 MD5 算法

【轉載】漫畫趣解 MD5 算法

【轉載】漫畫趣解 MD5 算法

【轉載】漫畫趣解 MD5 算法

【轉載】漫畫趣解 MD5 算法

【轉載】漫畫趣解 MD5 算法

【轉載】漫畫趣解 MD5 算法

摘要哈希生成的正確姿勢是什么樣呢?分三步:

 

1.收集相關業務參數,在這里是金額和目標賬戶。當然,實際應用中的參數肯定比這多得多,這里只是做了簡化。

 

2.按照規則,把參數名和參數值拼接成一個字符串,同時把給定的密鑰也拼接起來。之所以需要密鑰,是因為攻擊者也可能獲知拼接規則。

 

3.利用 MD5 算法,從原文生成哈希值。MD5 生成的哈希值是 128 位的二進制數,也就是 32 位的十六進制數。

【轉載】漫畫趣解 MD5 算法

【轉載】漫畫趣解 MD5 算法

【轉載】漫畫趣解 MD5 算法

第三方支付平台如何驗證請求的簽名?同樣分三步:

 

1.發送方和請求方約定相同的字符串拼接規則,約定相同的密鑰。 

 

2.第三方平台接到支付請求,按規則拼接業務參數和密鑰,利用 MD5 算法生成 Sign。 

 

3.用第三方平台自己生成的 Sign 和請求發送過來的 Sign 做對比,如果兩個 Sign 值一模一樣,則簽名無誤,如果兩個 Sign 值不同,則信息做了篡改。這個過程叫做驗簽。

 

 

 

[image]

[image]

[image]

 

MD5 算法底層原理:  

 [image]

簡單概括起來,MD5 算法的過程分為四步:處理原文,設置初始值,循環加工,拼接結果。   

 

  • 第一步:處理原文  

首先,我們計算出原文長度(bit)對 512 求余的結果,如果不等於 448,就需要填充原文使得原文對 512 求余的結果等於 448。填充的方法是第一位填充 1,其余位填充 0。填充完后,信息的長度就是 512*N+448。  

之后,用剩余的位置(512-448=64 位)記錄原文的真正長度,把長度的二進制值補在最后。這樣處理后的信息長度就是 512*(N+1)。  

 

  • 第二步:設置初始值  

MD5 的哈希結果長度為 128 位,按每 32 位分成一組共 4 組。這 4 組結果是由 4 個初始值 A、B、C、D 經過不斷演變得到。MD5 的官方實現中,A、B、C、D 的初始值如下(16 進制):  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM