Jmeter(二十四)Jmeter-Question之“加密请求

2021-04-07  本文已影响0人  紫陌花间客

日常接口测试碰到参数加密的情况不在少数,当然与之相对的也有解密。直接记录实例:

  排除各家用的不一样的加密方式,用的最多的还是MD5加密(16,32)。Jmeter3.2版本已经有解决方案

  1、${__MD5(,)}函数(默认32位),当然也有其他类型的加密函数:base64

  用法很简单,与一般函数使用一般无二。

  粘贴一个实例:

  加密之后的结果一致。

  2、第一种方法只是Jmeter自带功能以满足需求,当然,也有满足不了的时候,因此第二种方法就显得相对灵活一些,还是MD5(32)加密。

解决思路:使用Beanshell Sampler进行实例化外部jar包;

    先贴段MD5加密代码:

1package hehe.md5; 2 3import java.security.MessageDigest; 4import java.security.NoSuchAlgorithmException; 5 6publicclass Str2MD5 { 7//32    8public String MD5(String sourceStr) { 9String result = "";10try {11MessageDigest md = MessageDigest.getInstance("MD5");12            md.update(sourceStr.getBytes());13byteb[] = md.digest();14int i;15StringBuffer buf =newStringBuffer("");16for(intoffset = 0; offset < b.length; offset++) {17i = b[offset];18if(i < 0)19i += 256;20if(i < 16)21buf.append("0");22                buf.append(Integer.toHexString(i));23            }24result = buf.toString();25System.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        }30return result;31    }    32}

  当然,可以在外部写个类进行测试该段代码是否能够加密成功。

1package hehe.md5;2import hehe.md5.Str2MD5;34publicclass test {5publicstaticvoid main(String[] args){6String res =newStr2MD5().MD5("dj123456");7        System.out.println(res);8    }9}

测试结果也是与上方一致的。

将该段代码打成jar包,放入Apache Jmeter\lib\ext\目录下使用Beanshell Sampler进行外部实例化:

加密之后的结果与上方一致。

欢迎任何形式的转载,但请务必注明出处。 限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。 ---紫陌花间客

上一篇下一篇

猜你喜欢

热点阅读