Python模块学习之hashlib中MD5在接口测试中的应用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python模块学习之hashlib中MD5在接口测试中的应用相关的知识,希望对你有一定的参考价值。
博主刚接到的接口需求使用了新的的安全机制,发送请求的时候要同步传递一个签名,签名内容由参数按照ascii排序后的值和一个动态的key值组装而成,使用MD5加密,在测试初期因为开发没有代码完成加密时很麻烦,后来使用python实现了这一块的自动加密
不多说,上代码
#! /usr/bin/python # coding:utf-8 """ @author:Bingo @file: test.py @time: 2017/11/09 """ import requests import hashlib def param_order(dic): l = [] if isinstance(dic, dict): #判断是否为字典 for k, v in dic.items(): l.append(k + ‘=‘ + v) #将字典的key和value取出来组装成字符串 l.sort() #将字典中的元素按照首字母排序 return ‘&‘.join(l) #返回key1=value1&key2=value2的字符串 else: return ‘Not a dict‘ if __name__ == ‘__main__‘: soure_para = { ‘name‘: ‘01111111‘, ‘num‘: ‘181111‘, ‘sin‘: ‘HELLO‘ } key = ‘111‘ string = param_order(soure_para) #获取排序后的参数 keyMsg = hashlib.md5((string+key).encode(‘utf8‘)).hexdigest() #生成签名 soure_para[‘keyMsg‘] = keyMsg #将签名添加到参数中 # param = soure_para a = requests.request(‘POST‘,‘http://baidu.com‘,params=soure_para) #发送请求
以上是关于Python模块学习之hashlib中MD5在接口测试中的应用的主要内容,如果未能解决你的问题,请参考以下文章