Postman报文进行加密之AES加密

文章来源:未知 作者:admin 更新时间:2021-02-18

最近在项目接口测试中使用postman,对于一般的非加密HTTP请求可以很方便直接的测试,但是有些需要签名验签的报文,就需要对报文进行加解密处理,在实际工作过程中,参考了网络上共享的资源,下面对自己工作过程做一次记录,以及自己遇到的问题进行补充。

 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。

AES加密就写这些,接下来写RSA公钥加密。

 

参考网络资源如下:

https://github.com/digitalbazaar/forge

https://testerhome.com/topics/14869

https://www.jianshu.com/p/2eb5cfb782cb

https://blog.csdn.net/majinggogogo/article/details/106589758

感谢各位的分享。

上一篇:Postman报文进行加密之RSA+Bate64

下一篇:Postman报文进行加密之RSA公钥加密

Copyright © 2016-2017 ZhiQueTech. All Rights Reserved

地址:山东省·济南市·长清大学科技园·青年城3号楼十层

鲁ICP备16036139号