首页 > 其他分享 >使用Jmeter轻松实现AES加密测试

使用Jmeter轻松实现AES加密测试

时间:2023-07-20 16:26:46浏览次数:39  
标签:AES Jmeter 加密 aes 接口 解密 JMeter

https://blog.csdn.net/m0_67695717/article/details/126723189

 

 

 

大家在自己公司做接口测试的时候,有没有遇到过接口做加密处理的情况呢?相信我们的读者朋友们都有一定的概率会遇到这种情况,尤其是对接口数据安全有一定要求的公司接口数据一定会做加密处理。那么遇到加密情况,大家使用工具JMeter如何做接口测试呢?可以借助JMeter提供的函数digest和MD5,其中digest支持的加密方法是如下这7个:

 

 

由此可见到目前为止,JMeter自带的支持的加密方法仅MD和SHA,如果很幸运你所供职公司用的就是这两种加密中的任意一种,那么我们就可以通过JMeter提供的加密方法进行加密处理。但是我们很多读者遇到的是使用其他的通用加密算法,一说到通用加密方法,不得不说AES加密,AES加密算法是英文单词Advanced Encryption Standard的首字母缩写,AES加密采用的是效率较高的对称加密算法,也就是说,其加密、解密使用相同的密钥。

AES网络传输过程加密、解密过程详见如下图所示

 

 

术语说明:

明文:没有经过加密处理的数据

密文:经过加密处理后的数据

如果大家公司业务对应的接口是走AES加密,我们通过接口测试工具JMeter做接口测试时,需要对请求数据做加密处理,并且对应答数据做解码处理,我们拿响应数据解密处理来看,具体怎么实现接口aes解密处理。

01 解密方法获取
首先我们要获取到aes解密方法,可以跟开发要,也可以网上找,毕竟aes是比较通用的加密算法。

如下所示,是某公司开发提供的aes解密方法:

 

 

02 加密方法引入
接下来我们就需要将获取到的加密方法引入到JMeter中,有多种解决方案,咱们这里使用引入java源文件的方式,首先将java源文件拷贝到指定的盘符,例如:D盘。

然后在添加的beanshell后置处理器中增加如下脚本,来实现引入带加密方法的java源文件:

 

 

03 调用解密方法
如下脚本所示:

第4行实现调用aes解密方法,入参有2个,分别是aes密文字符串、秘钥

第2行定义aes密文字符串

第3行表示获取应答报体,并赋值给aes密文字符串变量decodeStr

第4行在日志查看面板打印应答报体aes明文

 

 

 

如下图所示,是经过aes解密后的应答报体内容:

 

 

经过以上步骤一、二、三操作即可实现对aes密文的解密。

接口请求aes加密,需要获取aes加密方法,不同于解密操作步骤是步骤三,调用的是获取到的aes加密方法。

04 URL解码
有些公司开发还会对应答报体进行URL编码处理,这种情况下,我们做接口、性能测试时,需要对应答做断言判断,因而需要先进行URL解码,然后再进行aes解密操作,然后再对解密后的应答信息做断言处理。

如下所示在JMeter的BeanShell 后置处理程序中已编写的脚本中,增加第5行调用url解码方法对应答报体做url解码处理,当然JMeter自带的urldecode函数也能实现url解码处理,第1行实现的是引入java.net包下的URLDecoder类,提供给第5行url解码方法调用,其他脚本行的注释内容详见步骤三,这里就不再赘述了

 

 

相应的开发对接口请求也会做对应的URL编码处理,我们测试的接口脚本就需要增加如下两行脚本。

 

 

以上就是AES+URL接口的JMeter解决方案。
————————————————
版权声明:本文为CSDN博主「测试界的飘柔」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_67695717/article/details/126723189

标签:AES,Jmeter,加密,aes,接口,解密,JMeter
From: https://www.cnblogs.com/ling7/p/17568696.html

相关文章

  • Android使用MD5加密
    codepackagecom.jay.common;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.io.InputStream;importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmExcep......
  • jmeter性能指标分析
    jmeter性能指标分析指标列举jmeter聚合报告中,现有指标如下样本平均值中位数90%百分位95%百分位99%百分位最小值最大值异常%吞吐量接收KB/sec发送KB/sec 指标详解各项指标代表什么意思内(以HTTP接口压测为)样本请求的总数=并发数*循环次数例如:并发......
  • HJ36 字符串加密
    1.题目读题HJ36 字符串加密  这道题的意思是让您使用一种加密技巧,把一个字符串转换成另一个字符串。这种加密技巧的原理是这样的:首先,您需要选择一个单词作为密钥,比如TRAILBLAZERS。然后,您需要把这个单词中重复的字母去掉,只保留第一个出现的字母,比如TRAILBZES。接着......
  • RSA 加密
    //通用RSA加密,可兼容.Net6.0以下stringCommonRSAEncrypt(stringpublicKeyBase64,stringplaintext){try{byte[]publicKeyBytes=Convert.FromBase64String(publicKeyBase64);AsymmetricKeyParameterpublicKeyParam=PublicKeyFactory.Crea......
  • .Net 对RSA加密结果跟JAVA加密结果不一致问题处理
    stringpublicRsaKey="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC6UCsvO/M/Q51ydlxvuvwy8W9yXkAWLLiG5eA2Duha9cr/XoWrQcETf7PRMNYaQs616PGhj0tnPfxfDltmeqTJQf8rHNxevIZ9nQ0N0/8PIlVszubpMyAHnEis2OLMnLENGyepAlabFGDMDPzRpf0ibL0Q/R15BuTzII5gunzAbwIDAQAB";stri......
  • php导出带加密的excel
    最近需要用yii2做一个导出excel带密码设置的功能,找了好多都没有达到目的,后来终于在git找到了一个,不过得php版本7.4以上https://github.com/nick322/secure-spreadsheet$objWriter=newXlsx($objPHPExcel);$file_path=$title.'.xlsx';$objWriter->save......
  • 谓词加密(Predicate Encryption, PE)-学习笔记
    该文对谓词加密描述的较为详细,可供参考。出处:廖定锋,王常吉.谓词加密理论与应用研究[D].中山大学硕士学位论文,2010:24-25. ......
  • C语言如何实现DES加密与解密
    C语言实现DES加密解密#include"des.h"//移位表staticTable_sizeconstshiftTable[NumberOfKeys]={1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1};//E扩展表staticTable_sizeconsteTable[des_key_pc2_standard]={ 32,1,2,3,4,5,4,5,6,7,......
  • 随机化 base64 加密
    随机化base64加密项目原址:Jeefy/jtim-enc·GitLab技术采用双重随机化技术。第一重随机化是利用固定的随机种子改变base64解码的映射数组。第二重随机化利用单位掩码改变改变固定的随即种子。好像也就没有了……......
  • C/C++文件加密解密[2023-07-18]
    C/C++文件加密解密[2023-07-18]题目27:文件加密文件的传输会有明文和密文的区别,明文发送是不安全的,用一个程序实现发送文件的加密和解密操作。加密算法,密钥设计由同学自己选择现有的加密解密算法或是自己设计。要求:(1)对文件的字符根据加密算法,实现文件加密。(2)对操作给出必......