Postman报文进行加密之AES

发布时间 2023-04-05 20:30:14作者: 【君莫笑】
Postman自带的加密函数是cryptoJS能够实现AES+Base64加密,还是用到Postman中的Pre-request Script。Pre-request Script是指在发送报文前执行的脚本,用于对请求包中的各种参数做一些个性化的处理。

接上篇文章,实际获取的sText签名需要传递给源报文参数sign,报文内容如下signText,把报文作为一个整体进行AES加密。

//-------------------------AES Base64 ---------------------------------//

var signText = '{"endDate":1554790512000,"pageNo":1," Id ":"410923199305180016","userPhone":"15011385365","sign":"'+sText+'","pageSize":200,"startDate":1552355829000}';

console.log(signText);

// AES 加密方法

// word是加密内容,keyStr是秘钥

// ECB:加密算法,padding:对齐方式

// ciphertext:16进制加密,不加此方法就是Base64加密

function  encrypt(word, keyStr){

  var key  = CryptoJS.enc.Utf8.parse(keyStr);

  var srcs = CryptoJS.enc.Utf8.parse(word);

  console.log('content:'+word);

  var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode:CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7});

  return encrypted.toString();

}

encryptedText = encrypt(signText, vkey);

console.log(encryptedText);

postman.setGlobalVariable("encryptdata", encryptedText);     //encryptdata对应Body中{{encdata}}

 

Encrypt函数实现AES加密,keyStr是AES密码,需要传递自己项目的。AES算法常用的加密模式ECB、CBC、CFB、OFB、CTR,我这的项目使用ECB,这里需要根据实际进行调整,
CryptoJS的具体使用可参考GitHub路径https:
//github.com/brix/crypto-js。ciphertext:16进制加密,不加此方法就是Base64加密。Padding填充模式有以下几种,也需要根据实际进行调整。 这里得到的encryptedText 才是最终的加密数据,需要使用setGlobalVariable()传给body。
来源: https://blog.csdn.net/tiekun888/article/details/113106124