Jmeter用BeanShell Sampler调用java写的jar包进行MD5加密

参考https://www.cnblogs.com/baoziluo/p/8036820.html

【前言】

在工作中,有时候我们请求的参数可能需要加密,比如登录接口中的密码做了加密操作,今天我就给大家介绍一种方法: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加密全过程!

生成时间戳

原文地址:https://www.cnblogs.com/lgqboke/p/10833204.html