YApi使用进阶说明 - script AES RSA

YApi使用进阶说明 AES RSA

Pre-request Script 使用说明

查看源码中 context.utils 的功能支持

context.utils = Object.freeze({
  _: _,
  CryptoJS: CryptoJS,
  jsrsasign: jsrsasign,
  base64: utils.base64,
  md5: utils.md5,
  sha1: utils.sha1,
  sha224: utils.sha224,
  sha256: utils.sha256,
  sha384: utils.sha384,
  sha512: utils.sha512,
  unbase64: utils.unbase64,
  axios: axios
});

 常用的js方法及调用方式

时间格式化:

dateFormat("YYYYmmddHHMMSSsss",new Date());

//格式化时间戳
function dateFormat(fmt, date) {
    let ret;
    const opt = {
        "Y+": date.getFullYear().toString(),        // 年
        "m+": (date.getMonth() + 1).toString(),     // 月
        "d+": date.getDate().toString(),            // 日
        "H+": date.getHours().toString(),           // 时
        "M+": date.getMinutes().toString(),         // 分
        "S+": date.getSeconds().toString(),     // 秒
        "s+":date.getMilliseconds().toString()
        // 有其他格式化字符需求可以继续添加,必须转化成字符串
    };
    for (let k in opt) {
        ret = new RegExp("(" + k + ")").exec(fmt);
        if (ret) {
            fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
        }
    }
    return fmt;
}

随机字符串:

getRandomStr(16)

//获取随机字符串
function getRandomStr(len){
//   var len=32;//32长度
  var radix=16;//16进制
  var chars='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
  var uuid=[],i;
  radix=radix||chars.length;
  if(len){for(i=0;i<len;i++)uuid[i]=chars[0|Math.random()*radix];}else{var r;uuid[8]=uuid[13]=uuid[18]=uuid[23]='-';uuid[14]='4';for(i=0;i<36;i++){if(!uuid[i]){r=0|Math.random()*16;uuid[i]=chars[(i==19)?(r&0x3)|0x8:r];}}}
  return uuid.join('');
}

 RSA加密:

参考 https://kjur.github.io/jsrsasign/api/symbols/KJUR.crypto.Cipher.html#constructor

var start ="-----BEGIN PUBLIC KEY-----\n";
var end ="\n-----END PUBLIC KEY-----";
var appSecret="";
appSecret=start+appSecret+end;

var random =getRandomStr(16);
console.log("random加密前:",random);
var RandomHead = rsaEncrypt(random,appSecret);
console.log("random加密后:",RandomHead);

//RSA加密
function rsaEncrypt(data,public_key){
    var pub = context.utils.jsrsasign.KEYUTIL.getKey(public_key);
    var enc = context.utils.jsrsasign.KJUR.crypto.Cipher.encrypt(data,pub);
    enc = context.utils.CryptoJS.enc.Base64.stringify(context.utils.CryptoJS.enc.Hex.parse(enc));
    return enc;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值