Apifox请求登录接口密码Crypto加密

1,684 阅读1分钟

实现方式通过增加前置操作来完成,其中增加的是前置脚本。

官方文档地址:www.apifox.cn/help/app/sc…

首先,我们新建一个接口,请求数据类型为json,定义三个请求参数,loginName:登录账号,loginPwd:登录密码,password:明文登录密码,用于加密生成loginPwd的参数值。 上图点击“保存”按钮成功后,切换到“运行”Tab页签。点击“保存为用例”按钮,生成一条接口用例记录。接下来会在此用例上增加前置操作。 点击Apifox左侧的用例记录。

切换到“前置操作”Tab页签,增加一条自定义脚本。 脚本文本框粘贴以下内容:

/**
 * crypto加密
 * data 密码明文
 * keyStr 密钥
 */
function encrypt(data, keyStr) {
    //  
    keyStr = CryptoJS.enc.Latin1.parse(keyStr);
    var iv = keyStr;
    var encrypted = CryptoJS.AES.encrypt(data, keyStr, {
        iv: iv,
        mode: CryptoJS.mode.CFB,
        padding: CryptoJS.pad.NoPadding
    });
    return encrypted.toString();
}

var paramJson = JSON.parse(pm.request.body.raw);
console.log(paramJson);
var password = paramJson.password;
var enpwd = encrypt(password, "thanks,farming22");
pm.environment.set("loginPwd", enpwd);
console.log(enpwd);

填写请求参数值后,点击“发送按钮”。 {{loginPwd}}为获取前置操作里设置的变量值。apifox要求如果变量是字符型,需要前后加上双引号。

详细介绍:www.apifox.cn/help/app/ap…

{
    "loginName": "admin",
    "loginPwd": "{{loginPwd}}",
    "password": "111111"
}

查看控制台调试信息

其它更为复杂的操作,例如构造签名sign的方法:

www.apifox.cn/help/app/be…