Jmeter(二十四)Jmeter-Question之「加密請求參數」

  平常接口測試碰到參數加密的狀況不在少數,固然與之相對的也有解密。直接記錄實例:java

  排除各家用的不同的加密方式,用的最多的仍是MD5加密(16,32)。Jmeter3.2版本已經有解決方案shell

  一、${__MD5(,)}函數(默認32位),固然也有其餘類型的加密函數:base64app

  

  用法很簡單,與通常函數使用通常無二。函數

  粘貼一個實例:測試

  

 

  

 

   

  加密以後的結果一致。加密

  二、第一種方法只是Jmeter自帶功能以知足需求,固然,也有知足不了的時候,所以第二種方法就顯得相對靈活一些,仍是MD5(32)加密。spa

    解決思路:使用Beanshell Sampler進行實例化外部jar包;code

    先貼段MD5加密代碼:blog

 1 package hehe.md5;
 2 
 3 import java.security.MessageDigest;
 4 import java.security.NoSuchAlgorithmException;
 5 
 6 public class Str2MD5 {
 7     //32    
 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 }

 

  固然,能夠在外部寫個類進行測試該段代碼是否可以加密成功。接口

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

測試結果也是與上方一致的。

將該段代碼打成jar包,放入Apache Jmeter\lib\ext\目錄下使用Beanshell Sampler進行外部實例化:

加密以後的結果與上方一致。

相關文章
相關標籤/搜索