Postman(Pre-request Script)AES接口加密(JS)


一、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

6、https://zhuanlan.zhihu.com/p/33480431


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM