jmeter根据公钥base64对明文密码进行rsa加密

在登录时遇到加密是比较常见的场景,也为安全一般是从服务器动态获取公钥,再根据公钥对密码明文进行rsa加密,做为密码再进行登录使用。所以需要对输入的密码进行处理,即在登录接口中添加前置JSR223进行处理,如下图所示:
在这里插入图片描述
所使用的都是java标准库里的函数,所以可以直接使用。具体代码如下:

import java.security.KeyFactory;
import java.security.PublicKey;
import java.security.spec.X509EncodedKeySpec;
import javax.crypto.Cipher;
import org.apache.commons.codec.binary.Base64;

String plaintext = "2";
//String publicKeyStr = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiSmbl2XOiGkbR_7oY2ja8Da9DPTZTeINKsIUHM3sGY_rbo3boN13Hq20APD1374_VWwgJQaSzbhzTV6Aoo6t_GG7-Fsa79CT5Kmtb5ycuvXbw0KCCIydmlu9OR9M697T4CX276HfadV40pY0qp5dsduFefqlOwSvv-xs2affS6jEHs5VKhGO6b3YTvscwRzCxQMK06YNL-RIFnr9TTz7bLeGGdos94tquB2Ci914jAJzt27t9W0haOVvX5MuNs6p5xZJI6ju5yabI4fFXvyo9gWPOqrW57dwyFCa0fJATGMlvqGGP5Qm_2y0Il_dCZLFqv-nKs3imOwMrkCGYHA8JQIDAQAB";

String publicKeyStr = vars.get("publicKey");

// Convert public key string to PublicKey object;java 8及更高版本使用Base64.getDecoder().decode(publicKeyStr) 进行解码,否则使用Base64.decodeBase64(publicKeyStr)进行解码
byte[] publicKeyBytes = Base64.decodeBase64(publicKeyStr);
//byte[] publicKeyBytes = Base64.getDecoder().decode(publicKeyStr) 

X509EncodedKeySpec spec = new X509EncodedKeySpec(publicKeyBytes);
KeyFactory factory = KeyFactory.getInstance("RSA");
PublicKey publicKey = factory.generatePublic(spec);

// Encrypt plaintext using RSA
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] encryptedBytes = cipher.doFinal(plaintext.getBytes("UTF-8"));

// Convert encrypted bytes to base64 string
String encryptedStr = Base64.encodeBase64String(encryptedBytes);

// Set the result variable for JMeter
vars.put("encryptedPassword", encryptedStr);
//${__setProperty(encryptedPassword,encryptedStr,)};

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

08- OpenCV:形态学操作(膨胀与腐蚀 、提取水平与垂直线)

目录 前言 一、膨胀(Dilation)与 腐蚀(Erosion) 二、形态学操作 1、开操作(Opening) 2、闭操作(Closing) 3、形态学梯度(Morphological Gradient) 4、…

【Python数据可视化】matplotlib之设置子图:绘制子图、子图共享x轴坐标、调整子图间距、设置图片大小

文章传送门 Python 数据可视化matplotlib之绘制常用图形:折线图、柱状图(条形图)、饼图和直方图matplotlib之设置坐标:添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值matplotlib之增加图形内容&#x…

Resemble Enhance音频失真损坏修复AI工具:一个开源语音超分辨率AI模型

Resemble Enhance是一款强大的音频处理工具,可以将嘈杂的录音转化为清晰而有力的声音,为用户提供更优质的听觉体验。这个工具不仅可以有效去除录音中的各种噪声和杂音,还能够恢复音频失真并扩展音频带宽,使原本的声音听起来更加清…

RT-Thread Studio学习(十三)DAC

RT-Thread Studio学习(十三)DAC 一、简介二、新建RT-Thread项目并使用外部时钟三、启用DAC四、测试五、总结 一、简介 本文将基于STM32F407VET芯片介绍如何在RT-Thread Studio开发环境下使用DAC设备。硬件及开发环境如下: OS WIN10STM32F40…

springcloud Eureka服务注册与发现

文章目录 代码地址Eureka基础知识什么是服务治理什么是服务注册与发现 单机版eurekaServerIDEA生成eurekaServer端服务注册中心类似物业公司EurekaClient端cloud-provider-payment8001修改EurekaClient端cloud-consumer-order80 集群Eureka构建步骤新建cloud-eureka-server7002…

告别混乱:文件重命名,删除下划线,让文件管理更高效

在数字时代,经常要处理大量的文件,无论是工作、学习还是生活。文件名中经常有下划线、特殊字符和数字,使得文件管理变得混乱不堪。下面来看云炫文件管理器如何通过文件重命名删除下划线,让文件管理更高效。 文件名下划线被删除前后…

服务器如何重置密码?

服务器重置密码 服务器存在多种操作系统,本篇文章仅以RedHat、银河麒麟、Win Server系统作为举例! 如果想了解更多服务器操作系统相关知识,请参看历史文章《服务器操作系统介绍》 银河麒麟破解密码 银河麒麟为国产Linux系统,UOS为…

【iOS】UIColor、CGColor、CIColor的区别和联系

编者在实验室小组的指导下,仿写了许多App,其中UI的颜色模仿也是令人头痛的点。设计颜色一般使用UIColor类方法直接获取颜色: 有时会使用 (UIColor *)colorWithRed:(CGFloat)red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alph…

十大排序算法模板

☆* o(≧▽≦)o *☆嗨~我是小奥🍹 📄📄📄个人博客:小奥的博客 📄📄📄CSDN:个人CSDN 📙📙📙Github:传送门 📅&a…

近4w字吐血整理!只要你认真看完【C++编程核心知识】分分钟吊打面试官(包含:内存、函数、引用、类与对象、文件操作)

🌈个人主页:godspeed_lucip 🔥 系列专栏:C从基础到进阶 🏆🏆关注博主,随时获取更多关于C的优质内容!🏆🏆 C核心编程🌏1 内存分区模型&#x1f384…

在 Jenkins 中使用 SSH Servers 配置文件上传路径

引言 在使用 Jenkins 进行持续集成和持续部署(CI/CD)的过程中,有时我们需要将构建好的文件上传到远程服务器。本文将介绍如何在 Jenkins 的 SSH Servers 配置中设置文件的上传目录,以及这些设置是如何组合以形成最终的上传路径。…

LLVM的项目结构

所有LLVM项目都有统一的目录结构。让我们比较一下LLVM和GCC,即GNU编译器集合。几十年来,GCC几乎为您能想到的每一个系统都提供了成熟的编译器。但除了编译器,没有任何工具可以用这些代码,原因是它不为重用而设计,而LLV…

【问题记录】使用命令语句从kaggle中下载数据集

从Kaggle中下载Tusimple数据集 1.服务器环境中安装kaggle 使用命令:pip install kaggle 2.复制下载API 具体命令如下: kaggle datasets download -d manideep1108/tusimple3.配置kaggle.json文件 如果直接使用命令会报错: root:~# kagg…

FPGA——时序分析与约束(Quartus II)

FPGA时序分析与约束 FPGA结构基础数据传输模型Quartus II 时序报告Quartus II 中TimeQuest的操作实操 时序分析:通过分析FPGA内部各个存储器之间的数据和时钟传输路径,来分析数据延迟和时钟延迟的关系,保证所有寄存器都可以正确寄存数据。 数…

直流继电器 JT3-22/5 线圈电压DC220V电磁式 柜内固定安装 JOSEF约瑟

JT3系列直流继电器 系列型号 JT3-42/3电磁继电器;JT3A-40/3电磁继电器 JT3-11/3电磁继电器;JT3A-03/3电磁继电器 JT3-30/3电磁继电器;JT3A-20/3电磁继电器 JT3-02/3电磁继电器;JT3A-12/3电磁继电器 JT3-22/1电磁继电器;JT3A-24/1电磁继电器 JT3-42/1电磁继电器;JT3A-31/1电磁…

gin-vue-admin二开使用雪花算法生成唯一标识 id

场景介绍 需求场景: 总部采集分支的数据,由于分支的 id 是子增的主键 id,所以会出现重复的 id,但是这个 id 需要作为标识,没有实际作用,这里选择的是分布式 id 雪花算法生成 id 存储用来标识,这…

NAS入门(学习笔记)

文章目录 AutoMLNAS初期NAS当前NAS框架One-Shot NAS权重共享策略 Zero-Shot NASZen-NASNASWOTEPENAS 参考资料 AutoML 深度学习使特征学习自动化 AutoML 使深度学习自动化 自动化机器学习 (automated machine learning) 是一种自动化的数据驱动方法, 并做出一系列决策。 按…

数据分析-Pandas如何整合多张数据表

数据分析-Pandas如何整合多张数据表 数据表,时间序列数据在数据分析建模中很常见,例如天气预报,空气状态监测,股票交易等金融场景。数据分析过程中重新调整,重塑数据表是很重要的技巧,此处选择Titanic数据…

vue-cli解决跨域

在vue.config.js中 找到devServer 在devServer中创建proxy代理 proxy:{ path(路径中包含这个path就会导航到target的目标接口):{ target:"目标接口" } } 例: 1 同源策略只针对于浏览器,代理服务器到后端接…

Linux中的定时任务(案例:定时备份和清空)

前言 Linux中的定时任务(案例:定时备份和清空) crontab 命令 Linux crontab 是用来定期执行程序的命令, 当安装完成操作系统之后,默认便会启动此任务调度命令。crond 命令每分钟会定期检查是否有要执行的工作,如果有…
最新文章