Jmeter 二次开发 函数助手 AES加解密

这篇具有很好参考价值的文章主要介绍了Jmeter 二次开发 函数助手 AES加解密。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 环境准备

  • IDE :IntelliJ IDEA 2021.1.1 x64
  • JAVA环境 :jdk1.8.0_251
  • 离线导包:导入Jmeter安装目录下lib/ext下的ApacheJmeter_function.jar 和 ApacheJmeter_cotre

2. 关键技术说明

2.1 离线导包

重点

  • 程序依赖的jar包需要放在ext路径下
  • 程序依赖的class需要放在 ApacheJmeter_function 中,和新开发的class放在同级
    Jmeter 二次开发 函数助手 AES加解密,jmeter,开发语言
    Jmeter 二次开发 函数助手 AES加解密,jmeter,开发语言
    Jmeter 二次开发 函数助手 AES加解密,jmeter,开发语言

2.2 示例代码

以AES CBC加密为例

package org.apache.jmeter.functions;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;

import org.apache.jmeter.engine.util.CompoundVariable;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.samplers.Sampler;

public class AES_CBC_Encrypt extends AbstractFunction {

    //自定义function的描述
    private static final List<String> desc = new LinkedList<>();
    //function名称
    private static final String KEY = "__AES_CBC_Encrypt";

    static {
        desc.add("json_input");
        desc.add("secret_input");
        desc.add("iv_input");
    }

    private CompoundVariable json_input;
    private CompoundVariable secret_input;
    private CompoundVariable iv_input;

    // 函数的逻辑执行主体
    /** {@inheritDoc} */
    @Override
    public String execute(SampleResult previousResult, Sampler currentSampler)
            throws InvalidVariableException {

        String bodyData = String.valueOf(json_input.execute());
        String secret_key = String.valueOf(secret_input.execute());
        String iv_key = String.valueOf(iv_input.execute());
        return AES_CBC.encryptCBC(bodyData, secret_key, iv_key);

    }

    // 用来接收和处理GUI界面的参数的传值
    /** {@inheritDoc} */
    @Override
    public void setParameters(Collection<CompoundVariable> collection) throws InvalidVariableException {
        checkParameterCount(collection, 3);
        Object[] values = collection.toArray();

        json_input = (CompoundVariable) values[0];
        secret_input = (CompoundVariable) values[1];
        iv_input = (CompoundVariable) values[2];

    }

    // 用来定义函数的名称,把自定义的内容显示在函数对话框中
    /** {@inheritDoc} */
    @Override
    public String getReferenceKey() {
        return KEY;
    }

    // 用来设置GUI界面的函数对话框,把自己定义的参数给显示在jmeter的GUI界面上
    /** {@inheritDoc} */
    @Override
    public List<String> getArgumentDesc() {
        return desc;
    }

    public static void main(String[] args) {        // AES支持三种长度的密钥:128位、192位、256位。
        // 代码中这种就是128位的加密密钥,16字节 * 8/字节 = 128位。
        String srt = "123456778";
        String iv_seed = "1234567887654321";
        System.out.println("密钥key:" + srt);
        System.out.println("iv:" + iv_seed);

        System.out.println("--------AES_CBC加密解密---------");
        String cbcResult = AES_CBC.encryptCBC(aes, srt, iv_seed);
        System.out.println("aes_cbc加密结果:" + cbcResult);
        System.out.println();

        System.out.println("---------解密CBC---------");

        String cbcDecrypt = AES_CBC.decryptCBC(cbcResult, srt, iv_seed);
        System.out.println("aes解密结果:" + cbcDecrypt);
        System.out.println();
    }
}


3. 代码包

https://download.csdn.net/download/weixin_39451323/88218178

4. 结果演示

加密:
Jmeter 二次开发 函数助手 AES加解密,jmeter,开发语言

    ${__AES_CBC_Encrypt({"token":"0e84b297-d8f2-4779-b7f1-60966ed19ce1"},qwertyuiiuytrewq,1234567887654321)}

解密:
Jmeter 二次开发 函数助手 AES加解密,jmeter,开发语言

${__AES_CBC_Decrypt(RwHL3jF01WDd9T3tKRUi2XIWuPJ/a5H78mExd8I3/fArE6778r7EsbSUwjx7cncAkkfrfc6QV53NrStWBnissA==,qwertyuiiuytrewq,1234567887654321)}

参考资料:jmeter官方函数https://github.com/ufctester/apache-jmeter/tree/master/src/functions/org/apache/jmeter/functions文章来源地址https://www.toymoban.com/news/detail-652440.html

到了这里,关于Jmeter 二次开发 函数助手 AES加解密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jmeter二次开发实现rsa加密

    jmeter函数助手提供了大量的函数,像 counter、digest、random、split、strLen,这些函数在接口测试、性能测试中大量被使用,但是大家在实际工作,形形色色的测试需求不同,导致jmeter自带或者扩展插件给我们提供的函数无法全部满足,这个时候我们就可以自己动手, 对JMeter进行

    2024年02月08日
    浏览(27)
  • 【JMeter】 二次开发插件开发 Dubbo 接口测试插件浅析

    在一些企业中,各类业务系统非常丰富,相互之间或对外提供很多的服务或接口 这些服务或接口中,有很多是需要强契约约束的,服务的提供方、服务的使用方必须遵守相同契约 这类服务最典型的就是RPC,其中应用广泛的有Dubbo、gRPC等 使用JMeter对这些RPC接口的测试,可以自

    2024年02月09日
    浏览(29)
  • Idea Maven 构建,运行Java程序,二次开发Jmeter

    【官网】https://maven.apache.org/download.cgi 【其他版本】https://dlcdn.apache.org/maven/maven-3/ 在Idea界面上关闭所有项目,全局配置: Ctrl + Alt + S 打开设置,搜索maven,配置如下 2. 配置运行程序Runner 【阿里云效】https://developer.aliyun.com/mvn/guide 右击Java - New - Package 输入package名称 - 新建Ja

    2024年02月11日
    浏览(33)
  • JMeter扩展开发:自定义函数

    强大的扩展性是压力测试工具 JMeter 的一个重要特点。虽然本身内置的函数、协议支持有限,但是 JMeter 提供了良好的扩展框架,允许使用者对其进行扩展。 本文将介绍如何利用 JMeter 的扩展性来实现自定义的函数,用户可以通过此方式扩展出性能测试过程中所需要的函数功能

    2024年02月10日
    浏览(25)
  • jmeter获取图片验证码-解密图片并识别

    说明:             关于图片验证码的处理方式有三种方法:一是让开发屏蔽验证码,二是让开发后端指定一个万能验证码,三是使用OCR工具进行图片验证码的解密及识别,推荐使用前两种方法最省事;             OCRServer工具识别图片验证码,由于没有对图片进行降噪,

    2023年04月20日
    浏览(90)
  • go语言使用AES加密解密

    Go语言提供了标准库中的crypto/aes包来支持AES加密和解密。下面是使用AES-128-CBC模式加密和解密的示例代码:

    2024年02月06日
    浏览(42)
  • Jmeter(二十六)、详解jmeter函数和变量

    详解JMeter函数和变量(1) JMeter函数可以被认为是某种特殊的变量,它们可以被采样器或者其他测试元件所引用。函数调用的语法如下: ${__functionName(var1,var2,var3)}  其中,__functionName匹配被调用的函数名称。用圆括号包含函数的形参,例如${__time(YMD)},不同函数要求的参数也不

    2024年02月11日
    浏览(27)
  • 用java语言写一个AES算法,使用AES(CBC模式)对数据进行加密或解密。加解密用到的密钥(Key)和密钥偏移量(IV),代码实例类编写。

    以下是一个使用Java编写的AES算法实例,使用AES(CBC模式)对数据进行加密和解密。代码中包括了生成随机密钥和密钥偏移量的方法。 java Copy code import javax.crypto.*; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.security.InvalidAlgorithmParameterException; import

    2024年02月07日
    浏览(45)
  • Jmeter脚本优化——随机函数

    线程组下有 2 个请求的参数中均使用到相同的参数,在进行参数化时,想 要每个请求使用不同的取值。 ( 1 ) 线程组设置如下 ( 2 ) 线程组下添加加购物车请求,请求传参包含商品 id ( goods_id ),见下图红色画线 内容 线程组下添加查看商品请求,请求传参包含商品 id

    2024年03月27日
    浏览(30)
  • Jmeter入门之digest函数 jmeter字符串连接与登录串加密应用

     登录请求中加密串是由多个子串连接,再加密之后传输。 参数连接:${var1}${var2}${var3} 加密函数:__digest    (函数助手里如果没有该函数,请下载最新版本的jmeter5.0) 函数助手:Options Function Helper Dialog  我们尝试一下通过连接参数生成的加密串是否正确。 测试示例:假设

    2024年02月13日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包