前言

开放的接口为了避免被别人乱调用,浪费服务器资源,这就涉及到签名(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)...相关推荐

  1. python接口自动化之cookie,session,token鉴权解决方案

    http协议:简单.快捷.无连接.无状态.多次请求之间是没有关联的,独立的. 一.cookie鉴权 1.什么是cookie? cookie是在服务器产生的存储在客户端的一小段文本信息,格式是字典,键值 ...

  2. 对外API接口的安全性设计及鉴权方式

    对外API接口的安全性设计及鉴权方式 API鉴权方式 API Key + API Secret实现API鉴权 Cookie + Session实现API鉴权 token机制实现API鉴权 API接口的 ...

  3. python接口自动化5-Json数据处理

    前言 有些post的请求参数是json格式的,这个前面第二篇post请求里面提到过,需要导入json模块处理. 一般常见的接口返回数据也是json格式的,我们在做判断时候,往往只需要提取其中几个关键的 ...

  4. python接口自动化-参数化

    原文地址https://www.cnblogs.com/yoyoketang/p/6891710.html python接口自动化 -参数关联(一)https://www.cnblogs.com/11 ...

  5. python接口自动化4-绕过验证码登录(cookie)

    前言 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接). 获取不到也没关系,可以通过添加cookie的方式绕过验证码. 一.抓登录coo ...

  6. python接口自动化关联参数_python接口自动化7-参数关联

    前言 我们用自动化发帖之后,要想接着对这篇帖子操作,那就需要用参数关联了,发帖之后会有一个帖子的id,获取到这个id,继续操作传这个帖子id就可以了 (博客园的登录机制已经变了,不能用账号和密码登录了 ...

  7. Python接口自动化之动态数据处理

    VOL 135 15 2020-06 今天距2021年199天 这是ITester软件测试小栈第135次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上  ...

  8. Python接口自动化之接口依赖

    VOL 129 28 2020-05 今天距2021年216天 这是ITester软件测试小栈第129次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上  ...

  9. Python接口自动化之logging封装及实战

    VOL 124 15 2020-05 今天距2021年230天 这是ITester软件测试小栈第124次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上  ...

最新文章

  1. 临时表,临时表什么时候删除
  2. info java module_如何在Jdk9 / java-9中解决module-info.java编译错误
  3. 深度学习---TensorFlow学习笔记:搭建CNN模型
  4. KVM为虚拟机添加设备总结
  5. VTK:开发Warnings实例
  6. 基于@RabbitListener声明LazyQueue
  7. linux加密框架 crypto 算法管理 - 算法查找接口
  8. 发动机压缩比怎么计算公式_怎么判断发动机有积碳,发动机积碳多的症状有哪些...
  9. mysql my.cnf 配置_MySQL——my.cnf参数设置说明
  10. 闭包(实例化)【面试】
  11. 什么是QName【转】
  12. 理解t检验的一个简单技巧和手动计算P值
  13. html怎么设置拉伸图片大小,html – 如何在不拉伸的情况下调整图像大小?
  14. java 中Shallow Heap与Retained Heap的区别
  15. R语言散点图+趋势线+标注
  16. 远程访问tomcat管理页面
  17. 性能测试面试题(测试框架总结)史上最全面试题
  18. (六) 数据结构 - 快速排序
  19. Error: 1307. Verify that you have sufficient privileges to modify the security permissions for this
  20. 【OpenGL】十八、OpenGL 绘制多边形 ( 绘制 GL_POLYGON 模式多边形 )

热门文章

  1. Mesos container在360广告系统的应用
  2. java new file会创建文件吗_Java高级——文件与I/O流
  3. 产品运营周报报表分析案例
  4. C语言输入函数换行符赋给变量B,C语言程序设计第3章顺序结构程序设计.pptx-资源下载在线文库www.lddoc.cn...
  5. 重装linux服务器简易流程
  6. MySQL5添加外键约束错误 (Error Code : 1005)
  7. 关于struts2 中result type=stream
  8. python设计模式3-抽象工厂模式
  9. 基于gateway网关实现限流
  10. 《成为顶级JAVA架构师的必备书籍》