【前言】
在工作中,有时候我们请求的参数可能需要加密,比如登录接口中的密码做了加密操作,今天我就给大家介绍一种方法:Jmeter用BeanShell Sampler调用java写的jar包进行MD5加密。
【正文】
1.我们首先在Eclipse里面写好MD5的加密文件,用Eclipse执行一遍,确保程序调用不会报错。
注意:类和方法命名时不要和jmeter自带的函数助手的一样
Eclipse展示图
myMd5.java 代码:
package myMd5;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class myMd5 {
Logger log = Logger.getLogger(this.getClass().getName());
public String MyMd5(String sourceStr) {
String result = "";
// Long timeStamp = System.currentTimeMillis();
String appkey = "key";
String key = "key";
String Strsource =appkey + sourceStr + key;
System.out.println(Strsource);
log.log(Level.INFO, Strsource);
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(Strsource.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
result = buf.toString();
// System.out.println("MD5(" +Strsource + ",32) = " + result);
// System.out.println("MD5(" + sourceStr + ",16) = " + buf.toString().substring(8, 24));
} catch (NoSuchAlgorithmException e) {
System.out.println(e);
}
return result;
}
}
2.写好这个类之后,再写一个test类调用一下这个方法:
Eclipse展示图:
Test.java代码如下:
package myMd5;
import myMd5.myMd5;
public class test {
public static void main(String[] args) {
String reString = new myMd5().MyMd5("1557126194208");
System.out.println(reString);
}
}
3.将文件导出为jar包,并放到 Jmeter的lib/ext文件目录下
选择整个包,点击Export,然后选择Java —> JAR file:
勾选导出内容,给导出的文件命名,点击Finish:
导出成功后,文件会生成在你这个Eclipse的工作空间中(在第一次打开Eclipse,会选择一个工作空间,用来存储文件)
找到你自己Jmeter目录下的libext,将这个jar包复制粘贴进
4.在Jmeter里面调用这个jar包
5.在Jmeter里面调用这个jar包
BeanShell Sampler 代码如下:
import myMd5.myMd5;
String sign = new myMd5().MyMd5("${date}");
System.out.println(sign);
vars.put("sign",sign);
运行结果:
上面就是Jmeter用BeanShell Sampler调用java写的jar包进行MD5加密全过程!
生成时间戳