python接口自动化22-签名(signature)鉴权(authentication)之加密(HEX、MD5、HMAC-SHA256)...
前言
开放的接口为了避免被别人乱调用,浪费服务器资源,这就涉及到签名(Signature)加密了
API 使用签名方法(Signature)对接口进行鉴权(Authentication)。每一次请求都需要在请求中包含签名信息, 以验证用户身份。
接口签名
1.根据需求文档,看接口的签名规则,每个公司的签名规则都不一样,以下仅供参考:
2.从这个文档中可以看出涉及到以下几个点:
- HMAC-SHA256
HMAC (Hash-based Message Authentication Code) 常用于接口签名验证
支持的算法有 md5、sha1、sha256、sha512、adler32、crc32等
- Binary2HEX
将二进制转换为 HEX
- Lowercase
将字符串转为小写
- MD5(HTTP body)
对post请求body进行md5加密
- Unix时间戳
Unix格式的时间戳,单位s
MD5加密
1.md5加密比较简单,直接调用hashlib内置的库就能解决
import hashlib
# MD5加密
def jiamimd5(src):m = hashlib.md5()m.update(src.encode('UTF-8'))return m.hexdigest()
timestamp
1.生成Unix时间戳,由于python里面获取的是带小数点的,转int类型就可以了
hmac_sha256加密
1.先用hmac里面方法生成signature字符串,注意new()里面传的两个参数是bytes类型
import hmac
import hashlibappkey = "需要申请"
strToSign = "根据文档规则生成"# hmac_sha256加密
signature = hmac.new(bytes(appkey, encoding='utf-8'), bytes(strToSign, encoding='utf-8'), digestmod=hashlib.sha256).digest()
# print(signature)
# 二进制转为HEX
HEX = signature.hex()
# print(HEX)
# 将字符串换为小写
lowsigne = HEX.lower()
---------------------------------python接口自动化完整版-------------------------
全书购买地址 https://yuedu.baidu.com/ebook/585ab168302b3169a45177232f60ddccda38e695
作者:上海-悠悠 QQ交流群:588402570
也可以关注下我的个人公众号:
python接口自动化22-签名(signature)鉴权(authentication)之加密(HEX、MD5、HMAC-SHA256)...相关推荐
- python接口自动化之cookie,session,token鉴权解决方案
http协议:简单.快捷.无连接.无状态.多次请求之间是没有关联的,独立的. 一.cookie鉴权 1.什么是cookie? cookie是在服务器产生的存储在客户端的一小段文本信息,格式是字典,键值 ...
- 对外API接口的安全性设计及鉴权方式
对外API接口的安全性设计及鉴权方式 API鉴权方式 API Key + API Secret实现API鉴权 Cookie + Session实现API鉴权 token机制实现API鉴权 API接口的 ...
- python接口自动化5-Json数据处理
前言 有些post的请求参数是json格式的,这个前面第二篇post请求里面提到过,需要导入json模块处理. 一般常见的接口返回数据也是json格式的,我们在做判断时候,往往只需要提取其中几个关键的 ...
- python接口自动化-参数化
原文地址https://www.cnblogs.com/yoyoketang/p/6891710.html python接口自动化 -参数关联(一)https://www.cnblogs.com/11 ...
- python接口自动化4-绕过验证码登录(cookie)
前言 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接). 获取不到也没关系,可以通过添加cookie的方式绕过验证码. 一.抓登录coo ...
- python接口自动化关联参数_python接口自动化7-参数关联
前言 我们用自动化发帖之后,要想接着对这篇帖子操作,那就需要用参数关联了,发帖之后会有一个帖子的id,获取到这个id,继续操作传这个帖子id就可以了 (博客园的登录机制已经变了,不能用账号和密码登录了 ...
- Python接口自动化之动态数据处理
VOL 135 15 2020-06 今天距2021年199天 这是ITester软件测试小栈第135次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 ...
- Python接口自动化之接口依赖
VOL 129 28 2020-05 今天距2021年216天 这是ITester软件测试小栈第129次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 ...
- Python接口自动化之logging封装及实战
VOL 124 15 2020-05 今天距2021年230天 这是ITester软件测试小栈第124次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 ...
最新文章
- 临时表,临时表什么时候删除
- info java module_如何在Jdk9 / java-9中解决module-info.java编译错误
- 深度学习---TensorFlow学习笔记:搭建CNN模型
- KVM为虚拟机添加设备总结
- VTK:开发Warnings实例
- 基于@RabbitListener声明LazyQueue
- linux加密框架 crypto 算法管理 - 算法查找接口
- 发动机压缩比怎么计算公式_怎么判断发动机有积碳,发动机积碳多的症状有哪些...
- mysql my.cnf 配置_MySQL——my.cnf参数设置说明
- 闭包(实例化)【面试】
- 什么是QName【转】
- 理解t检验的一个简单技巧和手动计算P值
- html怎么设置拉伸图片大小,html – 如何在不拉伸的情况下调整图像大小?
- java 中Shallow Heap与Retained Heap的区别
- R语言散点图+趋势线+标注
- 远程访问tomcat管理页面
- 性能测试面试题(测试框架总结)史上最全面试题
- (六) 数据结构 - 快速排序
- Error: 1307. Verify that you have sufficient privileges to modify the security permissions for this
- 【OpenGL】十八、OpenGL 绘制多边形 ( 绘制 GL_POLYGON 模式多边形 )
热门文章
- Mesos container在360广告系统的应用
- java new file会创建文件吗_Java高级——文件与I/O流
- 产品运营周报报表分析案例
- C语言输入函数换行符赋给变量B,C语言程序设计第3章顺序结构程序设计.pptx-资源下载在线文库www.lddoc.cn...
- 重装linux服务器简易流程
- MySQL5添加外键约束错误 (Error Code : 1005)
- 关于struts2 中result type=stream
- python设计模式3-抽象工厂模式
- 基于gateway网关实现限流
- 《成为顶级JAVA架构师的必备书籍》