如何使用 CryptoJS 对 MeterSphere 的接口参数进行加密


朱飞鸽
飞致云 发布于 2023-12-06 / 657 阅读 / 0 评论 /
在接口测试当中,有些接口为了安全考虑将接口参数进行加密,加密方式有多种,比如:MD5、AES、SHA等。CryptoJS文件封装 了 MD5、AES、SHA 等加解密方法。接下来以 CryptoJS 为例,介绍如何使用 CryptoJS 文件封装的加密方法进行接口参数加密。 第一步:上传 crypt

在接口测试当中,有些接口为了安全考虑将接口参数进行加密,加密方式有多种,比如:MD5、AES、SHA等。CryptoJS文件封装 了 MD5、AES、SHA 等加解密方法。接下来以 CryptoJS 为例,介绍如何使用 CryptoJS 文件封装的加密方法进行接口参数加密。

第一步:上传 crypto-js.js 文件到 MeterSphere 服务器

登录 MeterSphere 服务器,将 crypto-js.js 文件上传到 /opt/metersphere/data/body 目录下。

第二步:前置脚本引用 crypto-js.js 文件实现加密

在要加密的接口上添加前置脚本,在脚本中引用 crypto-js.js 文件,将接口参数进行加密,然后将加密后的参数通过 vars.put 存储。

javascript 原始脚本如下:

g = new Packages.org.mozilla.javascript.tools.shell.Global(Packages.org.mozilla.javascript.Context.getCurrentContext());
this.load = g.load; 
var aes = load("/opt/metersphere/data/body/crypto-js.js");
function Encrypt(msg) {
//填写key和iv
var key = CryptoJS.enc.Utf8.parse("Jy_ApP_0!9i+90&##");
var iv = CryptoJS.enc.Utf8.parse("20150301201234526");
var encrypted = CryptoJS.AES.encrypt(msg, key, {
 iv: iv,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
 });
return encrypted.toString();
} 
//var str = vars.get('data'); 
var str="123";
var enstr = Encrypt(str);
log.info("AES Encrypt>>>>>>>>>>>>>>>>");
log.info(enstr);
//将加密的数据存储到enstr变量中,在接口上用${enstr }引用
vars.put("enstr", enstr);

第三步:在接口参数中引用加密后的参数

 在接口参数中使用 ${参数名} 引用加密后的参数。

第四步:完成接口调试



是否对你有帮助?