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 进制):  

 

posted on 2020-12-04 16:14  qiaoli  阅读(1147)  评论(0编辑  收藏  举报

导航