【性能测试-登录时密码加密存储如何传参】

目的】
登录接口,密码加密传输,开发不做处理的情况下,密码如何加密传输
【方案】
使用前置处理器:JSR223 预处理程序,主要是在执行登录接口前将密码按照加密算法获得对应的加密密码,并传入接口
在这里插入图片描述

【说明】前端开发配合
1)前置的语言,这里使用js
2)这里load的算法需要两个js加密的文件,前端开发提供。这里的密码先经过sm2加密后又经过base64加密;所以引用了两个js的加密
3)这里的js文件要放到jmeter的安装包的Bin目录才行
4)公钥开发提供
5)可以调试打印: log.info("====jinru "+encryptData)
在这里插入图片描述
【脚本】

var navigator = this;
var window = this;// 引用在线jsencrypt.min.js包,也可以下载到本地再引用
load("D:/work/soft/jmeter/apache-jmeter-5.6.3/bin/sm2.js");
load("D:/work/soft/jmeter/apache-jmeter-5.6.3/bin/base64.js");log.info("加载完成====");
// 1、生成1024位的私钥 openssl genrsa -out rsa_1024_priv.pem 1024
// 2、生成1024位的公钥 openssl rsa -pubout -in rsa_1024_priv.pem -out rsa_1024_pub.pem
// var sm2 = require("./sm2.js");
// var Base64 = require("./base64.js");// log.info("jsencrypt.min.js加载成功!");
// BASE64.encode(inputStr);//普通Base64编码
// 加密
function SM2_ENC() {var pswd = "P@ss*w0rd@Sxyz!";var publicKey ="04487C1509763A8FA0A6FF3B1008B86C7C8C16DF6D9389A58DC12D4480C1A6BEB4717E368F3E62E67A4D2A417E87BB503341889A070DA710BBDF7E2B5810BC0000"; // publicKeyvar cipherMode = 1;var encryptData = sm2.doEncrypt(pswd, publicKey, cipherMode);log.info("====jinru "+encryptData)var password = BASE64.encode("04" + encryptData);log.info("加密后password====" + password);// vars.put("username", username);vars.put("password", password);// return password;
}SM2_ENC();

【注意】
js脚本前端提示,前端开发本地执行没问题,但是放到jmeter就不行,此时需要调整脚本;另外算法文件js也有报错的情况,需要开发配合修改的!
在这里插入图片描述

【登录接口】
按照如下$引用密码即可,可以使用查看结果数查看传参过程
在这里插入图片描述

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

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

相关文章

MVC(Model-View-Controller)架构简介

MVC(Model-View-Controller)架构是一种常用的软件设计模式,特别是在Web应用程序开发中。它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller&…

如何对视频文件加密_如何加密视频文件_视频文件如何加密

“嘿,小李,你知道咱们公司的新项目资料都是视频形式的吗?这些视频里有很多机密信息,我们需要好好保护起来。” “是啊,我也在想这个问题。你有没有什么好办法来加密这些视频文件呢?” “我听说有个叫域智盾…

apt update 报错移除ppa

1. 列出所有 PPA 源 首先,列出所有已添加的 PPA 源,以确认哪些需要移除 ls /etc/apt/sources.list.d/ 2. 移除特定的 PPA 源 cd /etc/apt/sources.list.d/rm 想要移除的的ppa

VUE3——001(03)、开发环境配置(node.js/mvn/java/ngix/tomact/vue3)

嫌麻烦的请下载安装包,有点强迫(懒的)可以看看。 解释:安装目录,即软件安装所在目录,如 node.js 我装在 D:\AppFolder\nodejs 系统变量修改 path增加 安装目录 在系统变量 p…

生成式AI的双重路径:Chat与Agent的融合与竞争

文章目录 每日一句正能量前言整体介绍对话系统(Chat)自主代理(Agent)结论 技术对比技术差异优势与劣势技术挑战结论 未来展望发展趋势Chat与Agent的前景社会和经济影响结论 后记 每日一句正能量 在避风的港湾里,找不到…

代码随想录算法训练营第38天|LeetCode 322. 零钱兑换、279.完全平方数、139.单词拆分

1. LeetCode 322. 零钱兑换 题目链接:https://leetcode.cn/problems/coin-change/description/ 文章链接:https://programmercarl.com/0322.零钱兑换.html 视频链接:https://www.bilibili.com/video/BV14K411R7yv/ 思路: 硬币无限…

泛型中的类型擦除

Java中的泛型是伪泛型,在编译期间会将所有与泛型有关的信息去掉,替换为原始类型。把泛型类的字节码进行反编译就可以看到是没有的。 关于原始类型,如果使用了上界和下界通配符,那么原始类型就是上界和下界,如何没有就…

实现领域驱动设计(DDD)系列详解:领域模型的持久化

领域驱动设计主要通过限界上下文应对复杂度,它是绑定业务架构、应用架构和数据架构的关键架构单元。设计由领域而非数据驱动,且为了保证定义了领域模型的应用架构和定义了数据模型的数据架构的变化方向相同,就应该在领域建模阶段率先定义领域…

我的世界!

每位冒险家在《我的世界》中的出生点都各不相同, 有的出生在桦木森林,有的出生在草原, 还有的出生在临近海洋的沙滩。 这些环境叫做生物群系,也常被称为生态系统。 在《我的世界》中的不同生物群系具有不同的地域特色—— 不…

本地化部署一个简单的AI大模型,Llama3.1

7 月 23 日消息,Meta 今晚正式发布llama3.1,提供 8B、70B 及 405B 参数版本。 Meta 称 4050 亿参数的 Llama 3.1-405B 在常识、可引导性、数学、工具使用和多语言翻译等一系列任务中,可与 GPT-4、GPT-4o、Claude 3.5 Sonnet 等领先的闭源模型…

Qt遇到qt自身组件找不到

比如在使用qtcharts的时候,找不到 解决方法: 在cmakelist中添加 find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Charts REQUIRED) 是一个 CMake 命令,用于查找并配置 Qt 库中的特定组件。这条命令的作用是找到 Qt 的主要版本(…

ST Stellar-E SR5E1 22KW OBC combo 3KW DC-DC汽车充电器解决方案

对于全球的环境保护意识抬头,全球的汽车产业慢慢步入电动化的时代,以减少碳排放。整车系统主要是由电池、电驱、电控的三电所构成,其中电池系统是整车的动力来源,而对电池充电的OBC系统更甚重要。一具高度安全性且高效的OBC系统&a…

MybatisPlus设置动态表名

对于一些数据量比较大的表,为了提高查询性能,我们一般将表拆分成多张表,常见的是根据数据量,按年分表或者按月分表;分表虽然太高了查询性能,但是在查询的时候,如何才能查询执行分表数据呢&#…

7.25扣...

思路:别的语言都可以不用辅助数组,我Java就得用! c:先计算字符串中数字个数,然后利用双指针将原本字符串逆序从数组最后往前插入,若遇到数字则替换为逆序的“number”,这个过程会使新字符串从后往前覆盖&am…

为什么 Java 开发中时区设定用 Asia/Shanghai 而不是 GMT+8(防止踩雷)

在全球化的背景下,时区管理对于开发人员来说是个重要但复杂的问题。虽然中国的标准时间是 UTC8,但在实际开发中,特别是 Java 开发中,我们应尽量使用时区数据库中的区域/位置形式(例如 Asia/Shanghai)&#…

【View】Android 事件分发难道你还不会吗?

Android事件分发机制决定了触摸事件如何从顶层窗口传递到具体的视图。主要涉及到三个核心方法:dispatchTouchEvent(), onInterceptTouchEvent(), 和 onTouchEvent()。 1. dispatchTouchEvent() 这是事件分发的入口点。Activity, ViewGroup, 和 View 都重写了这个方…

UI界面卡顿检测工具--UIHaltDetector

引言: 在日常工作当中,我们经常会遇到软件的界面出现卡顿的问题,而为了确定卡顿原因,我特地写了一个UI界面卡顿的小工具:UIHaltDetector;该工具可以在检测到目标窗口出现卡顿的时候直接打印堆栈日志和输出…

iOS 获取mimetype

///根据地址 获取文件类型 (NSString *)mimeType:(NSURL *)url{NSURLRequest *request [NSURLRequest requestWithURL:url];NSURLResponse *response [[NSURLResponse alloc] init];[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:…

各种聚类方法的聚类思想介绍及其优缺点

聚类是一种无监督学习方法,旨在将数据集中的样本划分为若干个组,使得同一组内的样本相似度最大,而不同组之间的样本相似度最小。以下是几种常见的聚类方法及其思想、优缺点的介绍: 1. K-means 聚类 聚类思想: K-mea…

MySQL SQL 编程练习

目录 创建表并插入数据 查看表结构 创建触发器 创建INSERT 触发器 创建DELETE 触发器 创建更新触发器 创建存储过程 创建提取emp_new表所有员工姓名和工资的存储过程s1 创建存储过程s2,实现输入员工姓名后返回员工的年龄 创建一个存储过程s3,有2个参数&…