【前言】
在工作中,有时候我们请求的参数可能需要加密,比如登录接口中的密码做了加密操作,今天我就给大家介绍一种方法:Jmeter用BeanShell Sampler调用java写的jar包进行MD5加密。
【正文】
1.我们首先在Eclipse里面写好MD5的加密文件,用Eclipse执行一遍,确保程序调用不会报错。
Eclipse展示图:
Str2MD5.java 代码:
1 packagecom.md5;2
3 importjava.security.MessageDigest;4 importjava.security.NoSuchAlgorithmException;5
6 public classStr2MD5 {7
8 publicString 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 inti;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 returnresult;31 }32 }
2.写好这个类之后,再写一个test类调用一下这个方法:
Eclipse展示图:
Test.java代码如下:
1 packagecom.md5;2
3 public classtest {4
5 public static voidmain(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 importcom.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函数,但是我实在没有找到,是不是我版本太高了?尴尬......