什么是MD5加密?
MD5是 Message Digest Algorithm , 即消息摘要算法第5版。MD5的前生有MD2,MD3,MD4
MD5特点:
1. 压缩性(加密后长度一致) 2. 容易计算 3. 抗修改性 4. 强抗碰撞
在Jmeter里面如何使用MD5 加密目标字符串?
方法一:
使用Jmeter自带的MD5函数,打开函数帮助,找到__MD5函数,在第一个名称“String to calculate MD5 hash” 处填入需要加密的字符串,点击“生成”按钮,即生成对应的函数字符串。
然后在对应的Http请求里黏贴上该函数即可。
方法二:
在Jmeter的Http请求下添加一个 BeanShell PreProcessor, 在里面使用BeanShell 语言实现MD5机密算法。
import java.security.MessageDigest;
var partnerId = "${partnerId_1}";
//var timestamp = "132";
//var partnerSecret = "9069a886bb2e4f7889c2ad89490e9284";
var partnerSecret = "${partnerSecret_1}";
Date date = new Date();
now = date.getTime();
TEMP_STR = "partnerId=" + partnerId + "×tamp=" + now + "&partner_secret=" + partnerSecret;
// 拿到一个MD5转换器
MessageDigest md = MessageDigest.getInstance("MD5");
// 创建一个字节数组
byte[] md5hash = new byte[32];
md.update(TEMP_STR.getBytes("utf-8"), 0, TEMP_STR.length());
//转换并返回结果
md5hash = md.digest();
System.out.println("sssssssssssssssssssssssssss");
StringBuffer sb = new StringBuffer();
for (int i=0;i<md5hash.length;i++) {
String sval = Integer.toHexString((int) md5hash[i] & 0xFF);
if(sval.length()== 1)
{
sval = "0"+sval;
}
sb.append(sval);
}
vars.putObject("MD5Signature", sb.toString().toUpperCase());
vars.putObject("timestamp",timestamp);
vars.putObject("partnerId",partnerId);
vars.putObject("partnerSecret",partnerSecret);
System.out.println(sb.toString());