首页 > 技术文章 > Jmeter用BeanShell Sampler调用java写的jar包进行MD5加密

baoziluo 2017-12-14 11:32 原文

【前言】

在工作中,有时候我们请求的参数可能需要加密,比如登录接口中的密码做了加密操作,今天我就给大家介绍一种方法:Jmeter用BeanShell Sampler调用java写的jar包进行MD5加密。

【正文】

1.我们首先在Eclipse里面写好MD5的加密文件,用Eclipse执行一遍,确保程序调用不会报错。

Eclipse展示图:

 

Str2MD5.java 代码:

 1 package com.md5;
 2 
 3 import java.security.MessageDigest;
 4 import java.security.NoSuchAlgorithmException;
 5 
 6 public class Str2MD5 {
 7     
 8     public String MD5(String sourceStr) {
 9         String result = "";
10         try {
11             MessageDigest md = MessageDigest.getInstance("MD5");
12             md.update(sourceStr.getBytes());
13             byte b[] = md.digest();
14             int i;
15             StringBuffer buf = new StringBuffer("");
16             for (int offset = 0; offset < b.length; offset++) {
17                 i = b[offset];
18                 if (i < 0)
19                     i += 256;
20                 if (i < 16)
21                     buf.append("0");
22                 buf.append(Integer.toHexString(i));
23             }
24             result = buf.toString();
25             System.out.println("MD5(" + sourceStr + ",32) = " + result);
26          //   System.out.println("MD5(" + sourceStr + ",16) = " + buf.toString().substring(8, 24));
27         } catch (NoSuchAlgorithmException e) {
28             System.out.println(e);
29         }
30         return result;
31     }
32 }

 

2.写好这个类之后,再写一个test类调用一下这个方法:

Eclipse展示图:

 

Test.java代码如下:

1 package com.md5;
2 
3 public class test {
4 
5     public static void main(String[] args) {
6         String reString = new Str2MD5().MD5("suneee1234");
7         System.out.println(reString);
8     }
9 }

 

3.将文件导出为jar包,并放到 Jmeter的lib/ext文件目录下

选择整个包,点击Export:

 

选择Java —> JAR file:

 

勾选导出内容,给导出的文件命名,点击Finish:

 

导出成功后,文件会生成在你这个Eclipse的工作空间中(在第一次打开Eclipse,会选择一个工作空间,用来存储文件)

 

找到你自己Jmeter目录下的lib\ext,将这个jar包复制粘贴进去:

 

4.在Jmeter里面调用这个jar包

 

BeanShell Sampler 代码如下:

1 import com.md5.Str2MD5;
2 String res = new Str2MD5().MD5("suneee1234");
3 System.out.println(res);
4 props.put("md5",res.toString());

 

运行结果:

上面就是Jmeter用BeanShell Sampler调用java写的jar包进行MD5加密全过程!

至于还有一种方法网上说是直接调用MD5函数,但是我实在没有找到,是不是我版本太高了?尴尬......

推荐阅读