资深8年测试整理,接口测试必备-加密与签名,让你不再走弯路...

news2024/10/6 20:28:09

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

1、接口加密解密

1)什么是加密以及解密?

加密:在网络上传输的原始数据(明文)经过加密后形成(密文)传输,防止被窃取。

解密:将加密还原成原始数据

2)加密方式分类?

对称式加密:对加密和解密使用的是同一个密钥

非对称式加密:非对称式加密需要两个密钥(双钥),分别叫公钥和秘钥,这两把秘钥可以互相加解密,公钥公开的,不需要保密,私钥是保密的。

2、加密方式

1)加对称密技术

DES加密算法:加密安全性弱,一般应用于旧的系统里面
AES加密算法:一般用于前后端分离的接口加密
Base64加密算法:编码的方式

2)非对称加密技术(RSA加密算法)

RSA加密算法:最有影响力的加密算法

场景一:
通过公钥加密
通过私钥解密

两个用户。A和B,B有双钥,A想要把一个数据报文通过加密的方式传给B。

① B把自己的公钥发送给A(公钥是公开的)
② A使用这个公钥把数据报文进行加密,加密完成传给B(加密后的密文通过网络传给B)
③ B使用自己的秘钥解密得到数据报文

场景二:
私钥加密:数字签名
公钥解密:验证签名

数字证书由来:因为公钥是公开的不安全,所以需要第三方的CA(数字证书颁发机构)对公钥进行加密,加密后的东西就叫数字证书。

数字证书包括:B用户基本信息以及B公钥的信息,部分证书也附有有效期。X509的标准

CA:双钥,通过私钥加密
验证签名:身份验证。

两个用户。A和B,B有双钥

① B把需要发送的数据报文通过私钥加密。
② B找到CA把自己的公钥做认证
③ CA就用自己的私钥对B的公钥和一些相关的信息一起加密,生成数字证书
④ CA就会把数字证书发给B
⑤ B将密文和数字证书都传给A
⑥ A用CA的公钥去解开数字证书,拿到B的公钥,在使用公钥解密密文,从而得到数据报文

Fiddler不能直接抓取https协议的数据报文,需要安装一个数字证书

https协议=http协议+SSL安全传输协议

SSL安全传输协议:安全套接层。
NetScape(B)研发,Fiddler(A),CA把数字证书发到网上,数字证书生成器。

3)MD5(完全不考虑解密,也叫做哈希算法,散列算法)

Postman举例:
在Tests中

//获得当前时间戳
new times = new Date().getTime()

//使用MD5加密
var miwen =
CryptoJS.MD5("admin").toString().toUpperCase()

Jmeter举例:

函数助手:__digest

${__digest(MD5.admin,,,)}

3、接口签名

1)什么是接口签名?

使用用户名,密码,时间戳和所有的排序过的参数组合起来,再加密得到的字符串,字符串是唯一的有权访问第三方金融接口的鉴权码=sign接口签名。

2)为什么要做接口签名?

防伪装攻击;
防篡改攻击;
防存放攻击;
防数据泄漏;

3)如何做接口签名,了解签名的规则

对所有的请求的参数按key按ASCII码做升序排列。

{"c":"3","b":"2","a":"1"}

{"1":"1","b":"2","c":"3"}

把参数名和参数值连接成字符串:

a=1&b=2&c=3

用申请到的appid和appsecret连接到字符串的头部

appid:用户名
appsecret:密码
appid=admin&appsecret=123&a=1&b=2&c=3

用时间戳连接字符串的尾部

appid=admin&appsecret=123&a=1&b=2&c=3&timestamp=124124252

然后再把这个字符串安装32位的MD5加密,加密后再转换成大写。

sign=E48B34F95AE8001C99CB86A612538C04

10秒有效。
jmeter实现并且分装成函数的话:自定义函数 jave python

4)postman实现并且封装成函数:JavaScript

Pre-request-Script

//url=https://aaa/sss?com=aaa&nu=hhh&phone=jjjjj&show_appid=jj&showapi_timestamp={{time}}&showapi_sign={{sign}}
var moment = require('moment')//获取时间戳

console.log(request.url);//获取请求信息

var url = request.url;
var param = url.split("?")[1]//取到url的?后面的值,按照?分割,取前面就是0

if(param != null)
{
{
   var time = moment().format("YYYYMMDDHHmmss")//取当天时间按照YYYYMMDDHHmmss形式显示
   pm.environment.set("time",time);//postman 自带的  全局变量

   param+="&showapi_timestamp="+time;
   param+="&showapi_sign=122344556";
   
   var param = param.split("&") ;//分割变成一个list
   param.sort();//按照要求的方式进行排序a-z
   var keys = new Array(param.length);
   var values = new Array(param.length);
   for(var i=0;i<param.length;i++)
   {
       keys[i]=param[i].split("=")[0]//=前面的值
       values[i]=param[i].split("=")[1]//=后面的值
   }
   var str=[]
   for(var p=0;p<keys.length;p++)//如果发现keys需要sign,就不参与验签
   {
       if (keys[p]=="showapi_sign"||values[p]=="{{time}}")
       {
           continue;
       }
       str.push(keys[p]+value[p]);
   }
   var sign = str.join("")
   sign = sign+"sssss"//加密钥
   pm.environment.set("sign",CryptoJs.MD5(sign).toString());//postman 自带的全局变量
   }
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每一个成功的人都曾历经挫折与失败,但他们不放弃,一次次地爬起来,坚定前行。在通往梦想的路上,要有勇气和决心,用热血和汗水创造属于自己的辉煌!

在茫茫人海中,只有敢于坚持梦想、勇于追求的人才能书写属于自己的传世之作。不畏艰辛,放飞心灵的翅膀,奋斗不息,绽放绚烂的人生华章!

只要你相信自己的力量,勇往直前,坚持不懈,没有什么是不能达成的。在奋斗的道路上,努力成就辉煌,让梦想化作燃烧的火焰,点亮未来的星空!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1084328.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

四.镜头知识之放大倍率

四.镜头知识之放大倍率 文章目录 四.镜头知识之放大倍率4.0 前言4.1 镜头的光学放大倍率的计算方法4.2 显示器的电子放大倍率4.2.1 智能硬件产品的显示放大倍率计算案例 4.3 系统放大倍率4.4 智能硬件产品的系统放大倍率计算案例4.4 智能硬件产品的系统放大倍率计算案例 4.0 前…

成绩分析数据的重要性,老师们一定要看过来!

成绩分析数据在教育领域中具有重要性&#xff0c;对于教师们来说是一项必不可少的工具。下面将详细介绍成绩分析数据的重要性&#xff0c;并强调为什么老师们一定要关注和利用这些数据。 **1. 了解学生的学习情况** 成绩分析数据可以帮助教师全面了解学生的学习情况。通过分析…

Jenkins发布失败记录

Exception when publishing, exception message [Exec exit status not zero. Status [127]] 见链接&#xff1a;Jenkins发布时常见异常&#xff08;持续更新...&#xff09;_exception when publishing, exception message [exec_码农StayUp的博客-CSDN博客 The remote end hu…

mysql sql语句遍历树结构

mysqlsql语句遍历树结构 MySQL SQL语句遍历树结构实现步骤 理解树结构和遍历算法 在开始之前&#xff0c;我们首先需要了解什么是树结构以及如何遍历树结构。树结构是一种常用的数据结构&#xff0c;由各个节点和节点之间的关系构成。树结构的一个重要应用是表示具有层级关系…

winscope使用方法

Ubuntu下Android T的winscope工具使用方法 1. 在Android的项目源码中&#xff0c;prebuilts/misc/common/winscope目录下 直接使用chrome浏览器打开文件winscope.html 2. 可能会提示adb问题 进入目录development/tools/winscope/adb_proxy&#xff0c;有文件winscope_proxy.…

地球系统模式的应用与进阶丨CESM丨Linux丨CLM丨代码修改等

目录 第一部分 运行前的准备 第二部分 Linux系统及编译 第三部分 CESM原理、结构 第四部分 CESM程序获取、结构及其功能 第五部分 CESM 移植、安装及快速运行 第六部分 CESM 配置选项及数据文件制备 第七部分 CESM单模块运行——以CLM为例 第八部分 CESM 的部分耦合运行…

TOGAF(企业架构)

TOGAF 核心概念&#xff08;官方原版&#xff09; 什么是TOGAF&#xff1f; TOGAF?是一种经验证的企业架构方法和框架&#xff0c;被世界领先的组织用于提高业务效率。它是一个企业架构标准&#xff0c;确保企业架构专业人员之间的标准、方法和通信一致&#xff0c;以便我们…

CentOS 7 服务器上创建新用户及设置用户密码有效期

一、创建用户 1、以 root 用户身份登录到 CentOS 服务器 2、运行以下命令以创建新用户&#xff1a; useradd -m -s /bin/bash username其中&#xff0c;username 是您要创建的新用户的用户名。该命令将创建一个新用户并为其分配一个主目录。3、运行以下命令以设置新用户的密码…

泛微低代码平台应用合集,开箱即用,助力组织快速数字化

随着数字化进程的不断深入&#xff0c;各行业对数字化转型的认知不断加深&#xff0c;组织数字化的步伐越来越快。 数字化对组织创新能力加强、生产效率提升、运营成本下降等方面有显著成效&#xff0c;但是组织数字化转型之路面临不少挑战&#xff1a; 数字化挑战 1、数字化…

Android终极大招之全面取代drawble文件实现View圆角背景样式的新方案

简介 最近一直忙于音视频SDK的开发&#xff0c;遇到很多问题&#xff0c;简单来说&#xff0c;就是怎么让别人接入SDK时越简单越好。相信大多数Android开发都会遇到一个场景&#xff0c;给TextView或Button添加背景颜色&#xff0c;修改圆角&#xff0c;描边等需求。一看到这样…

纯干货,怎样用手机提取歌曲伴奏?

提取歌曲伴奏这个需求还是很大的&#xff0c;要想去掉原声只留伴奏&#xff0c;只要使用音分轨人声分离软件中的【音频提取伴奏】功能就能解决这个问题了&#xff0c;下面就给大家具体演示一下操作步骤&#xff01; 第一步&#xff1a;打开【音分轨】APP&#xff0c;进入首页点…

电脑提示Explorer.exe系统错误该怎么办?

平时我们在使用电脑时&#xff0c;系统有时会提示Explorer.exe系统错误&#xff0c;很多用户在遇到这类问题时不知道该怎么办。遇到Explorer.exe系统错误&#xff0c;该怎么办呢&#xff1f;下面我们一起来了解一下。 怎么修复Explorer.exe系统错误&#xff1f; Explorer.exe是…

考研:数学二做题套路

文章中的□&#xff0c;代表广义化&#xff0c;就是什么都可以往里面填&#xff08;但是每个公式中&#xff0c;□的值必须相同&#xff0c;假设一个公式中有两个□&#xff0c;不可以第一个填x第二个填y&#xff09; 每个类型&#xff0c;都会先总结公式和套路&#xff0c;然…

C++: 多态

1.多态的概念 1.1概念 多态: 是面向对象编程 中的一个重要概念&#xff0c;它允许不同的对象以一种统一的方式进行操作。 具体点就是去完成某个行为&#xff0c;当不同的对象去完成时会产生出不同的状态 多态性使得可以使用相同的接口来处理不同的数据类型&#xff0c;而无需…

【wxWidgets 实现Window窗口系统】

【wxWidgets 实现Window窗口系统】 简介效果 简介 wxWidgets 嗯 还不错,速度快,文档资源全面,轻巧,免费等等,好处一堆但是,窗口透明效果不咋地,不知道是我显卡问题还是啥设置透明全成黑色了,想折腾成JavaFx那样的界面,瞬间没感觉了,不管怎么折腾都达不到预期效果,但是可以实现…

数据库数据恢复-oracle数据库报错:数据库无法打开的数据恢复案例

oracle数据库数据恢复环境&#xff1a; 一台服务器&#xff0c;底层由12块硬盘组成一组磁盘阵列&#xff0c;上层操作系统上运行oracle数据库。 oracle数据库故障&#xff1a; 数据库无法打开&#xff0c;报错&#xff1a;“数据库无法打开”&#xff0c;管理员第一时间将服务器…

英国音乐技术公司【Audoo】完成500万美元融资

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;总部位于英国伦敦的音乐技术公司【Audoo】今日宣布已完成500万美元融资。 本轮融资完成后Audoo的总融资金额已达到2200万美元&#xff0c;本轮融资的投资者包括&#xff1a;Elton John&#xff0c…

【计算机毕设选题推荐】物流管理系统SpringBoot+Vue

前言&#xff1a;我是IT源码社&#xff0c;从事计算机开发行业数年&#xff0c;专注Java领域&#xff0c;专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务 项目名 基于SpringBoot的物流管理系统 技术栈 SpringBootVueMySQLMaven 文章目录 一、物流管理系统…

电压放大器在超声领域中有哪些应用场景

电压放大器在超声领域中有多种应用场景。超声技术已经成为医学、工业检测和无损检测等领域中常用的非侵入性检测工具。电压放大器在超声设备中扮演着关键的角色&#xff0c;下面安泰电子将详细介绍电压放大器在超声领域中的应用场景。 超声发生器 超声发生器是产生高频声波的设…

相关性网络图

教程链接&#xff1a; 相关性网络图 往期文章&#xff1a; 1. 复现SCI文章系列专栏 2. 《生信知识库订阅须知》,同步更新&#xff0c;易于搜索与管理。 3. 最全WGCNA教程&#xff08;替换数据即可出全部结果与图形&#xff09; WGCNA分析 | 全流程分析代码 | 代码一 WGCNA分…