一、AES加密CBC
json串使用AES(AES/CBC/PKCS5Padding)加密,在postman的Pre_request Script 中添加脚本
// AES 加密方法
// content是加密内容,keyStr是秘钥
// ECB:加密算法,padding:对齐方式
// ciphertext:16进制加密,不加此方法就是Base64加密
function encrypt(content, keyStr) {
var key = CryptoJS.enc.Utf8.parse(keyStr);
var iv = CryptoJS.enc.Utf8.parse(keyStr);
var srcs = CryptoJS.enc.Utf8.parse(content);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 });
return encrypted.toString();
}
encryptedText = encrypt(signText, vkey);
console.log('=====ApiKeys:' + encryptedText);
var Crypto = require('cryptojs/cryptojs.js').Crypto;
function Encrypt(word) {
var mode = new Crypto.mode.CBC(Crypto.pad.pkcs7);
var eb = Crypto.charenc.UTF8.stringToBytes(word);
var kb = Crypto.charenc.UTF8.stringToBytes("1234567812345678");//KEY
var vb = Crypto.charenc.UTF8.stringToBytes("8765432187654321");//IV
var ub = Crypto.AES.encrypt(eb, kb, { iv: vb, mode: mode, asBpytes: true });
return ub;
}
二、AES加密ECB
// AES 加密方法
// content是加密内容,keyStr是秘钥
// ECB:加密算法,padding:对齐方式
// ciphertext:16进制加密,不加此方法就是Base64加密
function encrypt(content, keyStr) {
var key = CryptoJS.enc.Utf8.parse(keyStr);
var srcs = CryptoJS.enc.Utf8.parse(content);
var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
return encrypted.toString();
}
encryptedText = encrypt(signText, vkey);
console.log('=====ApiKeys:' + encryptedText);
区别在于CBC模式时,需要添加iv
三、参考
1、https://www.cnblogs.com/yungiu/p/11497946.html
2、https://zhuanlan.zhihu.com/p/162910462
3、https://www.cnblogs.com/lasdaybg/p/9971285.html
4、https://www.jianshu.com/p/cae50f9b61ab
5、Python AES加密 与 JS AES加密:https://blog.csdn.net/qq523176585/article/details/94010652