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

jmeter接口测试使用rsa加密解密算法

本篇介绍jmeter 使用rsa算法进行加密参数

如果测试过程中,部分接口采用了rsa加密算法,我们的jmeter 也是可以直接拿来调用的,不需要开发配合去掉加密代码!

直接上代码

import org.apache.commons.codec.binary.Base64;
import java.io.ByteArrayOutputStream;
import java.security.Key;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.Signature;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import java.util.HashMap;
import java.util.Map;
import javax.crypto.Cipher;
String RSA_PUB_KEY="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDNPFO1OaKJbLOH7hVzjj8s+k+spSgG7D2imIpR1ukC3xqgEUYP/vYIiZHXnK04Ddk0ELYee5xDbFfTHSWOK6d2lqK0ydWtLFHCdKpBehM/YKa72zf5KaSJGGgag8EQw4o5ZBS/Ia9w2OxYZ1S94OeRXaA+Z4cy8rBui0hTW9Z0pwIDAQAB";
String KEY_ALGORITHM = "RSA";
String SIGNATURE_ALGORITHM = "MD5withRSA";
int MAX_ENCRYPT_BLOCK = 117;
int MAX_DECRYPT_BLOCK = 128;public static byte[] decryptByPublicKey(byte[] encryptedData, String publicKey)throws Exception {byte[] keyBytes = Base64.decodeBase64(publicKey);X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(keyBytes);KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);Key publicK = keyFactory.generatePublic(x509KeySpec);Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm());cipher.init(Cipher.DECRYPT_MODE, publicK);int inputLen = encryptedData.length;ByteArrayOutputStream out = new ByteArrayOutputStream();int offSet = 0;byte[] cache;int i = 0;// 对数据分段解密while (inputLen - offSet > 0) {if (inputLen - offSet > MAX_DECRYPT_BLOCK) {cache = cipher.doFinal(encryptedData, offSet, MAX_DECRYPT_BLOCK);} else {cache = cipher.doFinal(encryptedData, offSet, inputLen - offSet);}out.write(cache, 0, cache.length);i++;offSet = i * MAX_DECRYPT_BLOCK;}byte[] decryptedData = out.toByteArray();out.close();return decryptedData;}public static byte[] encryptByPublicKey(byte[] data, String publicKey)throws Exception {byte[] keyBytes = Base64.decodeBase64(publicKey);X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(keyBytes);KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);Key publicK = keyFactory.generatePublic(x509KeySpec);// 对数据加密Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm());cipher.init(Cipher.ENCRYPT_MODE, publicK);int inputLen = data.length;ByteArrayOutputStream out = new ByteArrayOutputStream();int offSet = 0;byte[] cache;int i = 0;// 对数据分段加密while (inputLen - offSet > 0) {if (inputLen - offSet > MAX_ENCRYPT_BLOCK) {cache = cipher.doFinal(data, offSet, MAX_ENCRYPT_BLOCK);} else {cache = cipher.doFinal(data, offSet, inputLen - offSet);}out.write(cache, 0, cache.length);i++;offSet = i * MAX_ENCRYPT_BLOCK;}byte[] encryptedData = out.toByteArray();out.close();return encryptedData;}String str = "idNum=633335199606143151&name=蔺四十&phone=17610010005";
String result ="";
try {result = Base64.encodeBase64String(encryptByPublicKey(str.getBytes(), RSA_PUB_KEY));System.out.println(result);
} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();
}print(result);
vars.put("sign",result);
return result;

看运行效果

上述代码,直接把加密结果放入变量sign中,在其他地方,如果需要调用加密结果,只需要 使用代码:${sign}即可

import org.apache.commons.codec.binary.Base64;
引入了jmeter包中的类,如果本代码在jmeter环境运行,不需要加载第三方jar包
如果在eclipse 或者其他环境中运行,需要其他base64的类替换,请注意!

2023最新Jmeter接口测试从入门到精通(全套项目实战教程)

相关文章:

jmeter接口测试使用rsa加密解密算法

本篇介绍jmeter 使用rsa算法进行加密参数 如果测试过程中,部分接口采用了rsa加密算法,我们的jmeter 也是可以直接拿来调用的,不需要开发配合去掉加密代码! 直接上代码 import org.apache.commons.codec.binary.Base64; import j…...

IDEA通过Docker插件部署SpringBoot项目

1、配置Docker远程连接端口 找到并编辑服务器上的docker.service文件。 vim /usr/lib/systemd/system/docker.service在下面ExecStart替换成下面的 ExecStart/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock2.重启docker systemctl daemon-reload s…...

微查系统,一站式查询,让您的查询更加便捷

微查系统是挖数据一款功能强大的查询系统,是一个集多种查询和核验工具于一身的综合性平台。它可以大大简化企业和个人的查询流程,节省时间和成本,提高查询的准确性和效率。本文将介绍微查系统的主要特点,功能和使用方法&#xff0…...

C++stack和queue模拟实现以及deque的介绍

stack和queue介绍以及模拟实现 1.stack1.1stack的介绍1.2stack的使用 2.queue2.1queue的介绍2.2queue的使用 3.容器适配器3.1什么是适配器 4.stack模拟实现5.queue的模拟实现6.deque(双端队列) 1.stack 1.1stack的介绍 stack的文档介绍 stack是一种容…...

WPF ListView 鼠标点击,移动改变背景色不启作用

构建数据源 <Window.Resources><x:ArrayExtension x:Key"stringList"xmlns"clr-namespace:System;assemblymscorlib"Type"String"><String>第一行</String><String>第二行</String><String>第三行<…...

Maven Dependency 机制

依赖关系管理是Maven的核心功能。管理单个项目的依赖关系很容易。管理由数百个模块组成的多模块项目和应用程序的依赖关系是可能的。Maven在定义、创建和维护具有良好定义的类路径和库版本的可复制构建方面有很大帮助。 一、传递依赖 Maven通过自动包含可传递的依赖关系&…...

CustomShapes/自定义形状, CustomCurves/自定义曲线, AnimateableData/数据变化动画 的使用

1. CustomShapes 自定义形状视图 1.1 资源图文件 therock.png 1.2 创建自定义形状视图 CustomShapesBootcamp.swift import SwiftUI/// 三角形 struct Triangle: Shape{func path(in rect: CGRect) -> Path {Path { path inpath.move(to: CGPoint(x: rect.midX, y: rect.mi…...

软件测试用例设计方法-因果图法

边界值法是等价类划分法的补充&#xff0c;所以&#xff0c;它们是一对搭档。 那么&#xff0c;判定表法有没有它的搭档呢&#xff1f; 答案是&#xff0c;有的。那就是本篇文章分享的用例设计方法—— 因果图法 。 定义 因果图法&#xff1a; 用来处理等价类划分和边界值考…...

水库大坝安全监测是什么和主要作用?

水库大坝安全监测是指通过仪器观测和巡视检查对水利水电工程主体结构、地基基础、两岸边坡、相关设施以及周围环境所作的测量及观察。大坝安全监测是作为水库大坝安全管理的重要组成部分&#xff0c;是掌握水库大坝安全性态的重要手段&#xff0c;是科学调度、安全运行的前提。…...

极品三国新手攻略之进阶篇

尊敬的主公大人您好&#xff0c;首先恭喜您在游戏中取得的不俗成绩&#xff0c;相信您已经熟练掌握了不少玩法。今天&#xff0c;我们给大家奉上一份极品三国新手攻略之进阶篇&#xff0c;希望能为您提供有力的帮助。本篇攻略将为您深入分析游戏中武将、装备、试炼塔以及神兵等…...

windows应用程序告警:帐户名与安全标识间无任何映射完成

目录 一、问题现象 二、问题解决 &#xff08;一&#xff09;官方方法 &#xff08;二&#xff09;问题定位 &#xff08;三&#xff09;问题处理 一、问题现象 今天巡检域控服务器时&#xff0c;发现告警如下&#xff1a; 安全策略已传播&#xff0c;但有警告信息。 0x534…...

自定义jenkins镜像提示FontConfiguration.head错误

系统使用&#xff1a;Debian12&#xff0c;jdk17 提示问题&#xff1a;缺少字体 找一台jdk8的环境&#xff0c;在lib文件夹中找到fontconfig.bfc find / -name *fontconfig* 复制到jenkins目标服务器中&#xff0c;jdk目录的lib中 再次启动jenkins服务正常...

《软件方法》2023版第1章(10)应用UML的建模工作流-大图

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 1.4 应用UML的建模工作流 1.4.1 概念 我用类图表示建模工作流相关概念如图1-16。 图1-16 建模工作流相关概念 图1-16左侧灰色部分定义了“游戏规则”&#xff0c;右侧则是在“游戏规…...

The given SOAPAction http__xxxxx_xx does not match an operation

这是在客户端调用服务端接口时报出的错误&#xff0c;主要是客户端在调用时设置了SOAPAction&#xff0c;参考如下&#xff1a; 解决方案 在注解WebMethod() 中加上action注解&#xff0c;设置上一模一样的SOAPAction即可&#xff0c;如下&#xff1a; WebMethod(action &qu…...

【java零基础入门到就业】第二天:jdk的下载安装和第一个HelloWorld程序

1、java内容概述 java前半部分学习内容主要如下&#xff1a; 1、Java基础语法2、面向对象3、API4、字符串5、集合6、拼图游戏 1.1、 java基础语法 java基础语法主要包括以下内容&#xff1a; Java入门小概念Idea和运算符判断和循环方法数组课后练习题 Java是什么&#xf…...

C++数据结构X篇_15_求二叉树叶子数与高度(递归方法)

本篇参考求二叉树叶子数与高度&#xff08;C&#xff09;进行整理。 文章目录 1. 二叉树中叶子数与高度2. 求二叉树叶子数与高度的实现代码 1. 二叉树中叶子数与高度 我们首先来看一看二叉树中叶子数与高度的定义&#xff1a; 叶子数&#xff1a;对于一个二叉树的节点&#x…...

MySQL锁学习笔记

锁 事务的隔离性由锁来实现。 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在程序开发中会存在多线程同步的问题&#xff0c;当多个线程并发访问某个数据的时候&#xff0c;尤其是针对一些敏感的数据&#xff08;比如订单、金额等&#xff09;&#xff0c;我…...

如何将前后端分离项目部署到本地的Docker Desktop容器运行并且访问

文章目录 前言 完成了客户的一个前后端分离项目&#xff0c;要求部署到客户电脑上去展示&#xff0c;那肯定不能直接把代码弄上去跑呀~~~&#xff0c;于是我就想把他们都打包部署到本地的docker容器里面&#xff0c;方便运行和访问&#xff0c;so&#xff0c;以下内容就详细介…...

前端开发中的try...catch

首先try...catch 结构可以用来处理 Promise 中的异常。在 JavaScript 中&#xff0c;Promise 提供了一种处理异步操作的机制&#xff0c;并且可以通过 .catch() 方法捕获并处理异步操作中抛出的异常。 async function someAsyncFunction() {try {const result await someProm…...

数据加密中,采用密钥管理系统相比加密机的好处

密钥管理系统与加密机都能提供数据加解密&#xff0c;那么针对具体的应用加密&#xff0c;采用密钥管理系统比单纯使用加密机有哪些优点&#xff0c;列表如下&#xff1a; 集中化管理&#xff1a;密钥管理系统可以对加密算法和密钥进行集中化管理&#xff0c;使得企业可以对加…...

Esp32Robot入门04-服务端架构与本地Docker拉起(实战进阶:手把手教你用Docker部署小智助手服务端)

Esp32Robot入门04-服务端架构与本地Docker拉起&#xff08;实战进阶&#xff1a;手把手教你用Docker部署小智助手服务端&#xff09; &#x1f4cc; 文章简介&#xff1a; 在AI智能硬件开发中&#xff0c;ESP32-S3因高性价比备受青睐&#xff0c;但面对千亿参数的本地大模型与高…...

河南话TTS项目踩坑实录:为什么你的“中”字总发成“zōng”?——基于127小时方言语料的韵律建模纠偏指南

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;河南话TTS项目踩坑实录&#xff1a;为什么你的“中”字总发成“zōng”&#xff1f; 在构建河南方言语音合成&#xff08;TTS&#xff09;系统时&#xff0c;我们发现一个高频且顽固的问题&#xff1a;标准普通…...

摆脱论文困扰!盘点2026年普遍认可的的降AI率软件

轻松降低论文AI率在2026年已不再是天方夜谭。最新实测数据显示&#xff0c;2026年降AI率软件正以惊人的效率和精准度颠覆传统方法&#xff0c;覆盖AI痕迹消除、文本改写润色、降重优化、学术合规检测四大核心场景&#xff0c;真正实现高效降AI率&#xff0c;帮你告别论文焦虑。…...

告别本科论文 “从零焦虑”:okbiye AI 写作如何用 “全流程定制” 终结熬夜改稿循环

okbiye-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPT毕业论文 - Okbiye智能写作https://www.okbiye.com/ai/bylw 本科论文写到崩溃&#xff0c;是每个毕业生都懂的痛。 我见过凌晨三点的宿舍走廊&#xff0c;有人对着 Word 文档掉眼泪&#xff1b;也见过…...

终极SPT-AKI存档编辑器:如何轻松掌控你的逃离塔科夫离线游戏进度

终极SPT-AKI存档编辑器&#xff1a;如何轻松掌控你的逃离塔科夫离线游戏进度 【免费下载链接】SPT-AKI-Profile-Editor Программа для редактирования профиля игрока на сервере SPT-AKI 项目地址: https://gitcode.com/gh…...

别再死记硬背占空比了!用STM32 HAL库驱动MG90S舵机,我总结了这份避坑指南

STM32 HAL库驱动MG90S舵机&#xff1a;从参数计算到实战调试的全方位指南 刚接触STM32和舵机的新手们&#xff0c;是否曾被PWM配置中的各种参数搞得晕头转向&#xff1f;明明按照教程设置了占空比&#xff0c;舵机却纹丝不动&#xff1b;或者角度总是偏差几度&#xff0c;调试…...

告别手动排班!明日方舟智能基建助手Arknights-Mower五分钟上手指南

告别手动排班&#xff01;明日方舟智能基建助手Arknights-Mower五分钟上手指南 【免费下载链接】arknights-mower 《明日方舟》长草助手 项目地址: https://gitcode.com/gh_mirrors/ar/arknights-mower 还在为《明日方舟》繁琐的基建管理而头疼吗&#xff1f;每天重复的…...

10分钟终极指南:使用Chronos时间序列预测模型快速上手

10分钟终极指南&#xff1a;使用Chronos时间序列预测模型快速上手 【免费下载链接】chronos-forecasting Chronos: Pretrained Models for Time Series Forecasting 项目地址: https://gitcode.com/GitHub_Trending/ch/chronos-forecasting 想要在几分钟内完成专业级的时…...

如何快速配置Live Server Web Extension:提升开发效率的完整指南

如何快速配置Live Server Web Extension&#xff1a;提升开发效率的完整指南 【免费下载链接】live-server-web-extension It makes your existing server live. This is a browser extension that helps you to live reload feature for dynamic content (PHP, Node.js, ASP.N…...

百度文库文档免费下载终极指南:三步获取PDF完整教程

百度文库文档免费下载终极指南&#xff1a;三步获取PDF完整教程 【免费下载链接】baidu-wenku fetch the document for free 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wenku 你是否经常在百度文库找到心仪的文档&#xff0c;却因为需要下载券或付费而无法保存…...