Python实现加密接口测试方法步骤详解


Posted in Python onJune 05, 2020

加密接口怎么测试?

(1)写个函数或者方法,把要加密的参数使用这个函数过滤一遍,等于就是说把数据丢进去,加密了之后,再通过这个加密好的
数据传输过去就可以了!!

(2)至于用什么加密算法,这个要根据产品和自己的业务场景和需求不管是AES或者公钥私钥也好看自己的选择

(3)也可能是编码的问题,就直接用base64码把需要传输加密的东西通过base64返回base64码,然后再放进去,然后再进行传输

(4)这是编码不是加密,真的要加密的话,首先把要用的参数加好密之后再被传输出去,传输的过程中把传输的数据进行一次加密和封装之后再发送过去

(5)用jmeter做接口测试用post-processor加beanshell进行加密解密,再从日志中查找参数,然后具体的加密算法要看需求

(6)每个测试工具提供的加密算法是不一样的,工具不一样加密算法也是不一样的

(7)如果不用工具的话应该怎么做?==》看如下的代码

#coding=utf-8
"""
===========================
Author:多测师_王sir
Time:2020/6/2 10:12
Wechat:15367499889
Company:上海多测师信息有限公司
===========================
"""

import requests
import hashlib
import json

# 组建接口
# 第一步:拿到接口入参==》2个参数
# data 必须参数,对应的值是正常传递的参数组装成json字符串,组装的json字符串里面必须包含appId,
# sign 必须参数,对应得值是data值得md5值。
BASE_URL = 'http://118.24.XXX.XXX:8080/api/login?'
appId=4001
code='033qdUtz0LcJsc19tZxz09cTtz0qdUt6'
app_secret_key='dc6e426478b2d29a8e1ad70eb48660f4'


# 第二步:组装data参数
data={"appId":4001,"code":"033qdUtz0LcJsc19tZxz09cTtz0qdUt6"}
# a = str(data)
# print a
# b = '{'+a[45:58] + ','+a[1:43]+'}'
# print b

# 第三步:组装加密字符串拿到sign签名
value = 'data={"appId":4001,"code":"033qdUtz0LcJsc19tZxz09cTtz0qdUt6"}&key=dc6e426478b2d29a8e1ad70eb48660f4'
md5 = hashlib.md5()
md5.update(value)
sign = md5.hexdigest()
print sign

# 第四步:发送接口请求
dic = {"data":'{"appId":4001,"code":"033qdUtz0LcJsc19tZxz09cTtz0qdUt6"}',"sign":sign}
params = {
  "code":'033qdUtz0LcJsc19tZxz09cTtz0qdUt6',
  "params":json.dumps(dic)
}
response = requests.get(url=BASE_URL,params=params)
print response.text
print response.url接口返回结果:{"data":"b363e1c071d84757bf164121bad91ede","statusCode":"200"}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python logging 日志轮转文件不删除问题的解决方法
Aug 02 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
Nov 01 Python
Python 绘图库 Matplotlib 入门教程
Apr 19 Python
对python中的iter()函数与next()函数详解
Oct 18 Python
python logging日志模块原理及操作解析
Oct 12 Python
Python集合基本概念与相关操作实例分析
Oct 30 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
Feb 21 Python
python之MSE、MAE、RMSE的使用
Feb 24 Python
Python面向对象特殊属性及方法解析
Sep 16 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
Sep 23 Python
Python实现EM算法实例代码
Oct 04 Python
python基于selenium爬取斗鱼弹幕
Feb 20 Python
基于python 将列表作为参数传入函数时的测试与理解
Jun 05 #Python
python 引用传递和值传递详解(实参,形参)
Jun 05 #Python
Python检测端口IP字符串是否合法
Jun 05 #Python
Python如何基于Tesseract实现识别文字功能
Jun 05 #Python
如何导出python安装的所有模块名称和版本号到文件中
Jun 05 #Python
在python中list作函数形参,防止被实参修改的实现方法
Jun 05 #Python
pycharm远程连接vagrant虚拟机中mariadb数据库
Jun 05 #Python
You might like
使用VisualStudio开发php的图文设置方法
2010/08/21 PHP
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
微信API接口大全
2015/04/15 PHP
一波PHP中cURL库的常见用法代码示例
2016/05/06 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
jQuery学习笔记之控制页面实现代码
2012/02/27 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
2013/04/15 Javascript
jquery入门必备的基本认识及实例(整理)
2013/06/24 Javascript
兼容最新firefox、chrome和IE的javascript图片预览实现代码
2014/08/08 Javascript
JavaScript实现彩虹文字效果的方法
2015/04/16 Javascript
js实现跨域的方法实例详解
2015/06/24 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
2017/01/04 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
微信小程序 flex实现导航实例详解
2017/04/26 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
Vue.js计算机属性computed和methods方法详解
2019/10/12 Javascript
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
浅谈Python 字符串格式化输出(format/printf)
2016/07/21 Python
开源Web应用框架Django图文教程
2017/03/09 Python
Python 机器学习库 NumPy入门教程
2018/04/19 Python
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
2018/11/10 Python
详解pyenv下使用python matplotlib模块的问题解决
2018/11/29 Python
使用django的ORM框架按月统计近一年内的数据方法
2019/07/18 Python
Python MOCK SERVER moco模拟接口测试过程解析
2020/04/13 Python
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
美国最大的香水连锁店官网:Perfumania
2016/08/15 全球购物
UNDONE手表官网:世界领先的定制手表品牌
2018/11/13 全球购物
最新大学生自我评价
2013/09/24 职场文书
应届毕业生应聘自荐信范文
2014/02/26 职场文书
公司请假条格式
2014/04/11 职场文书
五四青年节演讲稿
2014/05/26 职场文书
新闻工作者先进事迹
2014/05/26 职场文书
年度考核表个人总结
2015/03/06 职场文书
CSS 还能这样玩?奇思妙想渐变的艺术
2021/04/27 HTML / CSS