当前位置: 首页 > news >正文

jmeter--8.加密传输

目录

1. Base64加密

2. MD5加密

3. SHA加密(sha1\sha\sha224\sha256\sha384\sha512)

4. RSA加密-公钥加密,私钥解密


1. Base64加密

1.1 在需要加密传输的接口下新增BeanShell 预处理程序,${username}可替换成value值,但是不利于参数化

import java.util.Base64;
//初始化一个Base64对象,调用encodeToString()方法
String Musername = Base64.getEncoder().encodeToString("${username}".getBytes("UTF-8"));
String Mpassword = Base64.getEncoder().encodeToString("${password}".getBytes("UTF-8"));
log.info(Musername);
log.info(Mpassword);
//设置变量
vars.put("Musername",Musername);
vars.put("Mpassword",Mpassword);

2. MD5加密

2.1 使用函数助手进行加密

${__digest(MD5,${username},,,)}

2.2 使用beanshell进行加密

在需要加密传输的接口下新增BeanShell 预处理程序

//导包
import org.apache.commons.codec.digest.DigestUtils;
//md5加密
String Musername = DigestUtils.md5Hex("${username}");
String Mpassword = DigestUtils.md5Hex("${password}");
//传值
vars.put("Musername",Musername);
vars.put("Mpassword",Mpassword);

3. SHA加密(sha1\sha\sha224\sha256\sha384\sha512)

3.1 使用函数助手进行加密--注意函数助手不支持sha-3加密

${__digest(sha-1,${username},,,)}

2.2 使用beanshell进行加密

import org.apache.commons.codec.digest.DigestUtils;
String username = DigestUtils.sha512Hex("${username}");
String password = DigestUtils.sha512Hex("${password}");
log.info("username加密结果为:"+username);
log.info("password加密结果为:"+password);

4. RSA加密-公钥加密,私钥解密

需要引入python脚本进行加密--公钥根据接口需求获取(可以直接问开发),这里只是一个示例

#通过公钥加密
def rsa_jiami():# 接收cmd命令里面的参数parse = argparse.ArgumentParser()parse.add_argument("-t", "--ticket", action="append")args = parse.parse_args()ticket = args.ticket#print("ticket:%s" % ticket)#导入公钥public_key_str = "-----BEGIN RSA PUBLIC KEY-----\nMIGJAoGBALO7UPE26anTGHND2Q54zYYPusDx+tbO1Yia7zoxpZediw+Baea7aFZC\nJ+ZvWd5ZBTopuWvb8hNkY24eBHcXN0pU32WjsH9REp1kXhxbndnw+u3diaoUFqVc\n66xl+LXEo1Y9oDWfkGCir2JnN0aieUiPlHDLhmc+LII/ZDspITKDAgMBAAE=\n-----END RSA PUBLIC KEY-----"pubkey = rsa.PublicKey.load_pkcs1(public_key_str.encode())#加密用户名username_str = rsa.encrypt(str(ticket[0]).encode("utf-8"),pubkey)#把二进制转化成字符串格式username_miwen = base64.b64encode(username_str).decode("utf-8")print(username_miwen)print("测试")# 加密密码password_str = rsa.encrypt(str(ticket[1]).encode("utf-8"), pubkey)# 把二进制转化成字符串格式passsword_miwen = base64.b64encode(password_str).decode("utf-8")print(passsword_miwen)if __name__ == '__main__':rsa_jiami()

beanshell调用

注意这里需要安装rsa,不然会引用失败。在控制台安装【pip install rsa】

import java.io.BufferedReader;  //导包
import java.io.InputStreamReader;String command = "cmd /c python D:/study/course/Jmeter/RSAjiami.py -t ${username} -t ${password}";  //组建cmd命令并执行py文件
Runtime rt = Runtime.getRuntime(); //初始化一个运行时对象
Process pr = rt.exec(command); //通过运行时对象运行cmd命令。pr.waitFor();  //运行时等待//调用pr进程对象获取到它的输入流。读取pr文件流的内容,并且保存到reponse_data
BufferedReader br = new BufferedReader(new InputStreamReader(pr.getInputStream()));
StringBuilder response = new StringBuilder();
String line = "";
while((line=br.readLine())!=null){response.append(line);
};
String reponse_data = response.toString();
br.close();log.info("reponse_data:"+reponse_data);//打印返回的内容//获取用户名和密码
String[] miwen = reponse_data.split("测试");
log.info(miwen[0]);
log.info(miwen[1]);
vars.put("Musername",miwen[0]);
vars.put("Mpassword",miwen[1]);

相关文章:

jmeter--8.加密传输

目录 1. Base64加密 2. MD5加密 3. SHA加密(sha1\sha\sha224\sha256\sha384\sha512) 4. RSA加密-公钥加密,私钥解密 1. Base64加密 1.1 在需要加密传输的接口下新增BeanShell 预处理程序,${username}可替换成value值&#xff…...

微信小程序canvas画布转图片转pdf文件

关键步骤介绍 步骤一:将canvas页面保存为图片 for(var a=0;a<this.data.page_canvas.length;++a){ var t_page_img = await this.canvas_to_image(this.data.page_canvas[a]) t_img.push(t_page_img) } this.data.page_canvas是保存的canvas界面,this.c…...

【Linux操作】国产Linux服务管理操作

【Linux操作】国产Linux服务管理操作 前言SAMBA配置服务器端1. 安装相关包2. 配置/etc/samba/smb.conf&#xff0c;在此文件末尾添加如下内容&#xff0c;并保存退出。3. 创建/home/share并更改权限4. 启动samba服务 客户端• Windows客户端• 麒麟客户端 Telnet1、telnet语法2…...

大语言模型系列-word2vec

文章目录 前言一、word2vec的网络结构和流程1.Skip-Gram模型2.CBOW模型 二、word2vec的训练机制1. Hierarchical softmax2. Negative Sampling 总结 前言 在前文大语言模型系列-总述已经提到传统NLP的一般流程&#xff1a; 创建语料库 > 数据预处理 > 分词向量化 > …...

vue项目运行报错this[kHandle] = new _Hash(algorithm, xofLen)

自从昨天分盘重装了最新版本的Node之后&#xff0c;项目是一启一个报错 出现这个报错时&#xff0c;需要在package.json文件中 dev命令行 增加&#xff1a;set NODE_OPTIONS–openssl-legacy-provider 出现该问题的原因&#xff1a; node.js V17开始版本中发布的是OpenSSL3.0,…...

APP兼容性测试,这几个面试硬技能,包教包会

兼容性测试主要通过人工或自动化的方式&#xff0c;在需要覆盖的终端设备上进行功能用例执行&#xff0c;查看软件性能、稳定性等是否正常。 对于需要覆盖的终端设备&#xff0c;大型互联网公司&#xff0c;像 BAT&#xff0c;基本都有自己的测试实验室&#xff0c;拥有大量终…...

【学习iOS高质量开发】——熟悉Objective-C

文章目录 一、Objective-C的起源1.OC和其它面向对象语言2.OC和C语言3.要点 二、在类的头文件中尽量少引用其他头文件1.OC的文件2.向前声明的好处3.如何正确引入头文件4.要点 三、多用字面量语法&#xff0c;少用与之等价的方法1.何为字面量语法2.字面数值3.字面量数组4.字面量字…...

Qt/QML编程之路:Grid、GridLayout、GridView、Repeater(33)

GRID网格用处非常大,不仅在excel中,在GUI中,也是非常重要的一种控件。 Grid 网格是一种以网格形式定位其子项的类型。网格创建一个足够大的单元格网格,以容纳其所有子项,并将这些项从左到右、从上到下放置在单元格中。每个项目都位于其单元格的左上角,位置为(0,0)。…...

mac pro “RESP.app”意外退出 redis desktop manager

文章目录 redis desktop manager下载地址提示程序含有恶意代码“RESP.app”意外退出解决办法&#xff1a;下载python3.10.并安装重新打开RESP如果还是不行&#xff0c;那么需要替换错误路径&#xff08;我的没用&#xff09;外传 最近在研究redis的消息&#xff0c;看到了strea…...

VirtualBox 如何让虚拟机和主机互相通信

首先建立一张虚拟网卡 在这里进行网络设置 设置成固定ip,这张网卡专门用来通信&#xff0c;上面的网卡用来上网的...

【Java】源码文件开头添加注释

需求 应公司质量部要求&#xff0c;需要对代码做静态检查。质量部要求&#xff0c;源码文件必须在起始行起设置一些注释&#xff0c;然而项目已经开发了一年之久&#xff0c;且没有维护这个注释。 此时&#xff0c;面对好几千个源码文件&#xff0c;我们如何快速添加相应的注…...

GitHub 异常 - 无法连接22端口 Connection timed out

GitHub 异常 - 无法连接22端口 Connection timed out 问题描述 错误信息&#xff1a; 今天突然用ssh方式 pull GitHub的项目报:ssh: connect to host xx.xx.xx.xx port 22: Connection timed out 表明 SSH 连接在尝试通过 22 端口连接到远程服务器时超时。这可能是由于网络环…...

python基础学习

缩⼩图像&#xff08;或称为下采样&#xff08;subsampled&#xff09;或降采样&#xff08;downsampled&#xff09;&#xff09;的主要⽬的有两个&#xff1a;1、使得图像符合显⽰区域的⼤⼩&#xff1b;2、⽣成对应图像的缩略图。 放⼤图像&#xff08;或称为上采样&#xf…...

Python密码本连接wifi

有时候我们会忘记自己的Wi-Fi密码&#xff0c;或者需要连接某个Wi-Fi网络以满足合法需求。本文将介绍如何使用Python编程语言编写一个简单的连接Wi-Fi的程序。 一、密码本准备 在进行wifi猜测时&#xff0c;其实就是列出各种可能的密码&#xff0c;用来尝试去访问目标wifi&…...

Docker 设置 Redis 的密码失效

在网上找了设置Docker里的设置Redis密码,一段时间就失效了 1. 进入redis的容器 docker exec -it 容器ID redis-cli2. config set requirepass 密码 解决方法 1. 创建 redis.conf 配置文件 # Redis configuration file example. # # Note that in order to read the configu…...

1.环境部署

1.虚拟机安装redhat8系统 这个其实很简单&#xff0c;但是有一点小细节需要注意。 因为我的电脑是 16核心的&#xff0c;所以选择内核16&#xff0c;可以最大发挥虚拟机的性能 磁盘选择SATA&#xff0c;便于后期学习 将一些没用的设备移除 选择安装redhat 8 时间选择上海 选择…...

2024年第二届“华数杯”国际大学生数学建模竞赛 (A题 MCM)| 废水扩散分析 |数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时&#xff0c;你是否曾经感到茫然无措&#xff1f;作为2022年美国大学生数学建模比赛的O奖得主&#xff0c;我为大家提供了一套优秀的解题思路&#xff0c;让你轻松应对各种难题。 让我们来看看华数杯的A题&#xff01; 完整内容可以在文章末…...

深度学习基础知识整理

自动编码器 Auto-encoders是一种人工神经网络,用于学习未标记数据的有效编码。它由两个部分组成:编码器和解码器。编码器将输入数据转换为一种更紧凑的表示形式,而解码器则将该表示形式转换回原始数据。这种方法可以用于降维,去噪,特征提取和生成模型。 自编码器的训练过…...

go语言GMP模式介绍以及协程案例展示

一. MPG模式 Go语言的调度模型被称为GMP&#xff0c;这是一个高效且复杂的调度系统&#xff0c;用于在可用的物理线程上调度goroutines&#xff08;Go的轻量级线程&#xff09;。GMP模型由三个主要组件构成&#xff1a;Goroutine、M&#xff08;机器&#xff09;和P&#xff0…...

码牛课堂首推——鸿蒙南北双向开发学习路线图标准版~

鸿蒙&#xff01;鸿蒙&#xff01;鸿蒙&#xff01; 要说2023-2024年IT圈最火爆的名词&#xff0c;一定是鸿蒙&#xff01; 2023年9月25日&#xff0c;华为发布会正式宣布2024年第一季度将推出HarmonyOS NEXT版本&#xff0c;这意味着鸿蒙原生应用开发将彻底摆脱Android手机系…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...