浅谈使用postman的CryptoJS.MD5加密带有中文(已进行unicode编码)以及url的字符串与md5在线加密工具加密不一致的原因,附加解决方法。

废话不多说,直接上代码以及加密结果:

1.在postman中,使用CrytoJS.MD5加密带有中文字符串:

此处列举了转码前后转码(unicode)后的加密结果。
在这里插入图片描述
2.使用MD5在线加密工具对字符串进行加密:
加密转码后的字符串(32位小写)
在这里插入图片描述
直接加密未转码的字符串(32位小写):
在这里插入图片描述
从上面几种的加密结果可以看出,postman的CrytoJS.MD5对已转码的中文字符串进行加密时,不会直接加密转码后的字符串,会将转码后的字符串重新转码成中文加密

3.加密使用了转义字符的url:
postman的加密结果
在这里插入图片描述
MD5在线加密的结果(32位小写):
在这里插入图片描述
加密使用了转义字符的url(32位小写加密)

在这里插入图片描述
从上面几种的加密结果可以看出,postman的CrytoJS.MD5对已转义的URL字符串进行加密时,不会直接加密转码后的字符串,会将转码后的字符串重新转码成原本的url加密

解决方案:
1.解决postman对unicode编码后的内容进行加密处理时,会重新转码成中文加密的方法是,在转码后的字符串前,加转义字符,如:
在这里插入图片描述
2.解决postman对转义后的url内容进行加密处理时,仍会对原url进行加密处理的方法:在已经转义的url前,在加一个转义符号,如:
在这里插入图片描述

小结:
由于我们后端是php语言,在生成接口签名时,需要对中文和url进行转义处理,并且是对转义后的结果进行加密,所以我之前一直无法使用postman生成正确的验签,通过上述例子的比较,我得出一个结论:postman对字符串加密时,不会直接处理转义、转码后的内容,而是会对原内容进行处理,为了规避postman这样的处理机制,我们只需要对转义后的内容在转义一次,然后在进行加密处理,即可得到与MD5在线加密工具加密后一样的内容。

                                                         ------------------------------------------------------------------------------------------------学海无涯
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值