当前位置: 代码迷 >> 综合 >> md5(Message-digest algorithm 5)加密原理(生成hash值)
  详细解决方案

md5(Message-digest algorithm 5)加密原理(生成hash值)

热度:38   发布时间:2023-12-18 18:01:17.0

对MD5算法简要的叙述:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值

信息摘要:把明文内容按某种规则生成一段哈希值,即使明文消息只改动了一点点,生成的结果也会完全不同。
MD5(Message-digest algorithm 5)就是信息摘要的一种实现,它可以从任意长度的明文字符串生成128位的哈希值

【转载】漫画趣解MD5算法

摘要哈希生成的正确姿势是什么样呢?分三步:

1.收集相关业务参数,在这里是金额和目标账户。当然,实际应用中的参数肯定比这多得多,这里只是做了简化。

2.按照规则,把参数名和参数值拼接成一个字符串,同时把给定的密钥也拼接起来。之所以需要密钥,是因为攻击者也可能获知拼接规则。

3.利用MD5算法,从原文生成哈希值。MD5生成的哈希值是 128 位的二进制数,也就是 32 位的十六进制数
在这里插入图片描述

第三方支付平台如何验证请求的签名?同样分三步:

  1. 发送方和请求方约定相同的字符串拼接规则约定相同的密钥
  2. 第三方平台接到支付请求,按规则拼接业务参数和密钥利用 MD5 算法生成 Sign
  3. 用第三方平台自己生成的 Sign 和请求发送过来的 Sign 做对比,如果两个 Sign 值一模一样,则签名无误,如果两个 Sign 值不同,则信息做了篡改。这个过程叫做验签。
  相关解决方案