分享一下如何利用 Python测试 完成验签 *** 作

分享一下如何利用 Python测试 完成验签 *** 作,第1张

概述一、什么是验签:用非常简单的话来描述:有一个发送消息的端A有一个接收消息的端B,以及A发给B的信息msg,发送过程要进行签名(类似于对数据加密成一个sign)A对发送的msg进行加密签名,随请求发送一个signB接收消息,要对sign进行验签,检测消息发送端以及来源是否安全与正确。注意:sign的生

一、什么是验签:

用非常简单的话来描述:有一个发送消息的端 A 有一个接收消息的端B ,以及A发给B的信息 msg,发送过程要进行签名(类似于对数据加密成一个sign)A对发送的msg进行加密签名,随请求发送一个signB接收消息,要对sign进行验签,检测消息发送端以及来源是否安全与正确。注意:sign的生成跟发送的信息有关,且有专门的加密算法。

二、情景再现:

1)加密的算法如下所示(Python代码):

2)请求的数据如下所示:

3)随请求发送的请求头如下(sign表示这里需要传递签名后的数据):

4)要求以及说明:

请求传递的数据param以及利用md5Encode函数对参数进行加密生成的sign的字段顺序要一模一样

难点在于:param是一个字典,无法保证它的顺序

解题思路:对字典param进行排序,使之成为有序的字典形式

三、解决难题:

先利用collections模块里面的OrderedDict来对字典完成排序 from collections import OrderedDict

利用md5Encode函数对param进行加密,但是md5Encode只能对字符串进行加密,所以要先利用Json转成字符串。

把sign替换到head这个数据里面去,发起请求

验签的 *** 作就完成了!这个还是一种非常简单的验签,平常可能会需要添加时间戳等变动字段,但是解决方案是一样的!

总结

以上是内存溢出为你收集整理的分享一下如何利用 Python测试 完成验签 *** 作全部内容,希望文章能够帮你解决分享一下如何利用 Python测试 完成验签 *** 作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1186559.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存