jmeter中参数加密

news2024/10/11 0:27:35

加密接口常用的方式有:
MD5,SHA,HmacSHA
RSA
AES,DES,Base64

压测中有些参数需要进行加密,加密方式已接口文档为主。

MD5加密

比如MD5加密的接口文档:
请求URL:http://101.34.221.219:5000/md5login
请求方式:POST
请求参数:

参数名称参数值是否必须类型备注
usernameadminstring必须MD5加密处理
password123string必须MD5加密处理

1、用户名、密码不进行加密登录测试
在这里插入图片描述
在这里插入图片描述
用户名密码未进行MD5加密,登录失败。

2、用户名、密码进行加密登录测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用户名密码加密,登录成功。

beanshell组件代码加密

目前jmeter的__digest函数支持的加密方式较少,jmeter用户手册
在这里插入图片描述
其他加密算法要在beanshell组件中编写
比如接口以AES方式加密,规则如下:

生成访问签名

参数名说明示例值备注
clientId签名ID0ca6eaf66cbf4f2bb1db6902c9c8d915
clientSecret签名秘钥8c0a5f3388154e2c959f2bd44fc2dd66
timestamp时间戳1706859156428当前时间戳
uuid唯一ID12345678唯一值,一个签名只能使用一次

1.1 访问签名生成逻辑

3.1.1、签名值= 签名ID+“:”+签名秘钥+“:”+时间戳+“:”+唯一ID

3.1.2、 生成算法:AES ,签名参数:ECB PKCS7 128bits

3.1.3、 AES算法秘钥(aesKey):#iSn##s$olu.@@sm

3.1.4、 access_sign生成规则:用AES算法对签名值进行加密

1.2 beanshell脚本编写

// Import the Base64 class
import org.apache.commons.codec.binary.Base64;

// 参数
var clientId = "0ca6eaf66cbf4f2bb1db6902c9c8d915";
var clientSecret = "8c0a5f3388154e2c959f2bd44fc2dd66";
var timestamp = new Date().getTime();
var uuid = new java.util.Random().nextInt(90000000) + 10000000;


// 计算签名值
var signValue = clientId + ":" + clientSecret + ":" + timestamp + ":" + uuid;

// 加密签名值
var aesKey = "#iSn##s$olu.@@sm";
var cipher = javax.crypto.Cipher.getInstance("AES/ECB/PKCS5Padding");
cipher.init(javax.crypto.Cipher.ENCRYPT_MODE, new javax.crypto.spec.SecretKeySpec(aesKey.getBytes(), "AES"));
var encryptedSign = cipher.doFinal(signValue.getBytes());

// 生成访问签名 (使用 Commons Codec)
var accessSign = new String(Base64.encodeBase64(encryptedSign));

// 将访问签名存储到变量中
vars.put("access_sign", accessSign);

// 打印访问签名
System.out.println("access_sign: " + accessSign);

参数替换即可
在这里插入图片描述

Base64加密

比如MD5加密的接口文档:
请求URL:http://101.34.221.219:5000/base64login
请求方式:POST
请求参数:

参数名称参数值是否必须类型备注
usernameadminstring必须Base64加密处理
password123string必须Base64加密处理

1、用户名、密码不进行加密登录测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用户名密码未进行Base64加密,登录失败。

2、用户名密码进行Base64加密
2-1、http请求-添加-前置处理器-beanshell预处理程序在这里插入图片描述
2-2、输入代码,Base64加密代码固定

//Base64加密方式
import java.util.Base64;

//初始化一个Base64对象,调用encodeToString()方法
String bs64_username = Base64.getEncoder().encodeToString("admin".getBytes("UTF-8"));
String bs64_password = Base64.getEncoder().encodeToString("123".getBytes("UTF-8"));

//设置为线程组能够调用的变量
vars.put("bs64_username",bs64_username);
vars.put("bs64_password",bs64_password);

//打印
log.info("bs64_username的结果是:"+bs64_username);
log.info("bs64_password的结果是:"+bs64_password);

2-3、日志查看对比
在这里插入图片描述
在这里插入图片描述

2-4、参数替换为变量,执行查看结果
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Unity AI Navigation自动寻路

目录 前言一、Unity中AI Navigation是什么?二、使用步骤1.安装AI Navigation2.创建模型和材质3.编写向目标移动的脚本4.NavMeshLink桥接组件5.NavMeshObstacle组件6.NavMeshModifler组件 三、效果总结 前言 Unity是一款强大的游戏开发引擎,而人工智能&a…

基于单片机病房呼叫系统数码管显示房号设计

**单片机设计介绍,基于单片机病房呼叫系统数码管显示房号设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机病房呼叫系统数码管显示房号设计概要主要涵盖了利用单片机技术实现病房呼叫系统,并…

基于springboot实现校园周边美食探索及分享平台系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现园周边美食探索及分享平台系统演示 摘要 美食一直是与人们日常生活息息相关的产业。传统的电话订餐或者到店消费已经不能适应市场发展的需求。随着网络的迅速崛起,互联网日益成为提供信息的最佳俱渠道和逐步走向传统的流通领域,传统的…

【SpringCloud】Ribbon负载均衡

🏡浩泽学编程:个人主页 🔥 推荐专栏:《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》《项目实战》 🛸学无止境,不骄不躁,知行合一 文章目录 …

新家装修选中央空调如何选?认准约克VRF中央空调

在现代家居生活中,追求舒适和健康生活环境的家庭越来越倾向于选择中央空调系统。面对市场上琳琅满目的中央空调品牌,如何挑选一款合适的家用中央空调成为许多消费者的一大难题。今天,我们以约克VRF中央空调为例,深入探讨其特点和优势,为广大家庭提供一个舒适的选择答案。 首先…

玩美移动升级虚拟试妆体验: 推出3D多色腮红AR试妆解决方案

领先的AI和AR美妆和时尚技术解决方案供应商,以及“美力AI”解决方案开发商——玩美移动于今天宣布,其3D腮红虚拟试妆工具已实现进一步技术提升。用户可以通过三色腮红虚拟试妆体验,尝试更多腮红色号、质地以及多种颜色组合妆效。本次虚拟试妆…

应用方案 D431L可调精密基准源,可耐压35V以上

概述 D431L是一种低压三端可调稳压器,保证在适用温度范围内的热稳定性。输出电压可以设置为VREF(约1.24V)~16V(接两个外部电阻)。该装置具有典型的动态输出0.2Ω的阻抗。在很多应用中,可替代齐纳二极管。 D431L有TO-92和SOT23封装…

Go打造REST Server【二】:用路由的三方库来实现

前言 在之前的文章中,我们用Go的标准库来实现了服务器,JSON渲染重构为辅助函数,使特定的路由处理程序相当简洁。 我们剩下的问题是路径路由逻辑,这是所有编写无依赖HTTP服务器的人都会遇到的问题,除非服务器只处理一到…

用xshell或ftp连接本地虚拟机linux系统,centos7修改动态ip地址

如果不知道怎么下载vm本地虚拟机软件或者不知道怎么安装可以参考我上一篇博客 vmWare虚拟机下载安装详细教程,手把手一步一步教学-CSDN博客 安装好虚拟机软件我们想要通过xshell和ftp工具来管理,小黑框不太舒服哈哈哈 一.准备工作 输入命令来查看当前的ip地址 ip addr 可以…

unity学习(76)--窗口化和后台运行

1.通过如下方式将编译的游戏设置为窗口模式。 成功: 2.现在只有鼠标点击的窗体游戏运动,其他窗体游戏都会卡住。 2.1build setting中 2.2unity内部Project Settings 也被同步修改了

VBA技术资料MF135:多值匹配查找

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…

unity 数据的可视化

【Unity 实用插件篇】| 可视化图表插件XCharts (折线图、柱状图、饼图等)详细教学-腾讯云开发者社区-腾讯云 Package https://github.com/XCharts-Team/XCharts/releases 官方文档案例 入门教程:5分钟上手 XCharts 3.0 | XCharts (xcharts-team.github.io)

idea2023+jdk1.8+Maven3.6.3+Testng6.10+junit4.13搭建测试

idea2023jdk1.8Maven3.6.3Testng6.10junit4.13搭建测试 首先创建maven工程 导入依赖 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/…

文心一言 VS 讯飞星火 VS chatgpt (225)-- 算法导论16.3 7题

七、推广赫夫曼算法&#xff0c;使之能生成三进制的码字(即码字由符号0、1、2组成)&#xff0c;并证明你的算法能生成最优三进制码。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1a; 推广赫夫曼算法以生成三进制码字需要对算法进行一定的修改&#xff0c;确保在每…

前端学习<二>CSS基础——08-CSS属性:定位属性

CSS的定位属性有三种&#xff0c;分别是绝对定位、相对定位、固定定位。 position: absolute; <!-- 绝对定位 -->​position: relative; <!-- 相对定位 -->​position: fixed; <!-- 固定定位 -->​ 下面逐一介绍。 相对定位 相对定位&#xff1a;让…

用DataGrip连接hive时报错:User: root is not allowed to impersonate plck5,解决方法

你可以尝试关闭主机校验 修改hive安装目录下conf/hive-site.xml,将hive.server2.enable.doAs设置成false <property><name>hive.server2.enable.doAs</name><value>false</value><description>Setting this property to true will have H…

常用类(日期时间)

目录 一、JDK 8之前的日期时间API1.1、System类中获取时间戳的方法1.2、Java中两个Date类的使用1.3、SimpleDateFormat的使用1.4、Calendar日历类的使用 二、JDK8中日期时间API的介绍2.1、LocalDate、LocalTime、LocalDateTime的使用2.2、Instant类的使用2.3、DateTimeFormatte…

OKCC的API资源管理平台怎么用?

API资源管理平台&#xff0c;重点是“资源”管理平台&#xff0c;不是API接口管理平台。 天天讯通推出的API资源管理平台&#xff0c;类似昆石的VOS系统&#xff0c;区别是VOS是SIP资源管理系统&#xff0c;我们的API资源管理平台是API资源管理系统&#xff08;AXB、AX、回拨AP…

Spring Boot 统一数据返回格式 分析 和 处理

目录 实现统一数据格式 测试 原因分析 解决方案 &#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f4d5;格言&#xff1a;吾愚多不敏&#xff0c;而愿加学欢迎大家&#x1f44d;点赞✍评论⭐收藏 实现统一数据格式 统⼀的数据返回格式使⽤ ControllerAdvice 和 Response…

达梦数据库新手上路排坑

数据库安装 这个没啥说的&#xff0c;按照官网教程操作&#xff0c;我使用的是docker进行安装 下载文件docker文件 官方下载地址- load -i dm8****.tar (注意修改为当前下载的文件)达梦官方文档注意修改为当前版本 docker run -d -p 5236:5236 --name dm8 --privilegedtrue -…