一、准备
1、下载crypto-js.js,copy到%jmeter%/bin目录下
网盘链接: https://pan.baidu.com/s/1_M3DyaH5tD585CrsbhZ8Hw 提取码: 4fm8
2、jmeter添加前置处理器JSR223 PreProcessor,语言选择javascripts
二、代码如下
load("crypto-js.js");
//获取公共modulus
var modulus = vars.get("modulus");
log.info(modulus);
//获取公共modulus
var exponent = vars.get("exponent");
log.info(exponent);
function Encrypt(msg) {
var key = CryptoJS.enc.Utf8.parse("Jy_ApP_0!9i+90&#");
var iv = CryptoJS.enc.Utf8.parse("2015030120123456");
var encrypted = CryptoJS.AES.encrypt(msg, key, {
iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.toString();
}
function Decrypt(msg) {
msg=msg.replace(/\r\n/g,"");
var key = CryptoJS.enc.Utf8.parse("Jy_ApP_0!9i+90&#");
var iv = CryptoJS.enc.Utf8.parse("2015030120123456");
var decrypted = CryptoJS.AES.decrypt(msg, key, {
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7,
iv:iv
});
var decryptedStr = decrypted.toString(CryptoJS.enc.Utf8);
return decryptedStr;
}
//var str = vars.get('data');
var str="123";
var enstr = Encrypt(str);
log.info(enstr);
//vars.put("enstr1","enstr");
var param="tpNMbMvfyVx63BeHMhav2sox3aKXR6Pl0SbTzSyC1aL/JCej0drB0HTAkfRsw7O1SGIDh/76nPVFou25pZQMrw==";
var denstr = Decrypt(param);
log.info(denstr);