当前位置: 首页 > news >正文

Postman关于AES的加解密

Postman 绝对是软件测试工程师做接口联调、测试的必备工具。虽然实际工作中,团队可能会用到 JMeter、Apifox、Apipost、Burp Suite 等不同工具,但 Postman 凭借通用性强的优势,成为连接开发、测试、CTC(持续测试 / 协同团队)和安全人员的 “通用桥梁”,大家协作时用它沟通对接更顺畅。
实际测试中,为保障数据传输安全,很多接口都会采用加密传参,其中 AES 加密因安全性高、兼容性强,是最常用的选择。而且有些复杂的 AES 加密场景(比如 GCM 模式),或是涉及 RSA 等其他加密方式时,单靠 Postman 自带功能很难实现,往往需要借助外部库,或是通过 Python、JS、Java 等语言搭建的本地接口来处理加解密逻辑,才能满足测试需求。
接下来,我就结合实测经验,跟大家分享 Postman 中 AES 加解密的实操步骤,以及如何对接本地接口做结果校验,帮大家快速搞定加密接口测试。

ECB加解密:
image
image

涉及js代码:
`//加密
const CryptoJS = require("crypto-js");

// AES-ECB 加密
function encryptAesEcb(content, key) {
const contentBytes = CryptoJS.enc.Utf8.parse(content);
const keyBytes = CryptoJS.enc.Utf8.parse(key);
const encrypted = CryptoJS.AES.encrypt(contentBytes, keyBytes, {
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
});
return encrypted.ciphertext.toString(CryptoJS.enc.Base64); //base编码输出
}

// 使用示例
const content = "123456789";
const key = "qazwsxedcrfvtgby";
const ecb_content = encryptAesEcb(content, key);
console.log("加密结果:", ecb_content);

//AES-ECB 解密
const CryptoJS = require("crypto-js");
const decryptAesEcb = (content, key) =>
CryptoJS.AES.decrypt(
content,
CryptoJS.enc.Utf8.parse(key),
{ mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 }
).toString(CryptoJS.enc.Utf8);

//入参
const content = "bq1MAKqMB95lpEu7vM6ZPw==";
const key = "qazwsxedcrfvtgby";
const ecb_content = decryptAesEcb(content, key); // 解密结果
console.log("解密结果:", ecb_content);
pm.environment.set('key',key);

`
image

image

CBC加解密:
image

image

涉及js代码:
`
// AES-CBC 加密
const CryptoJS = require("crypto-js");

function encryptAesCbc(content, key, iv) {
const contentBytes = CryptoJS.enc.Utf8.parse(content);
const keyBytes = CryptoJS.enc.Utf8.parse(key);
const ivBytes = CryptoJS.enc.Utf8.parse(iv);

const encrypted = CryptoJS.AES.encrypt(contentBytes, keyBytes, {
iv: ivBytes,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
});

return encrypted.ciphertext.toString(CryptoJS.enc.Base64); // Base64 编码输出
}

// 使用示例
const content = "123456789";
const key = "qazwsxedcrfvtgby";
const iv = "qazwsxedcrfvtgb2";
const cbc_content = encryptAesCbc(content, key, iv);
console.log("加密结果:", cbc_content);

// AES-CBC 解密
const CryptoJS = require("crypto-js");

const decryptAesCbc = (content, key, iv) =>
CryptoJS.AES.decrypt(
content,
CryptoJS.enc.Utf8.parse(key),
{ iv: CryptoJS.enc.Utf8.parse(iv), mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }
).toString(CryptoJS.enc.Utf8);

// 入参
const content = "lmqEs+J5JhQauKev7668VQ=="; // 示例密文
const key = "qazwsxedcrfvtgby";
const iv = "qazwsxedcrfvtgb2";
const cbc_content = decryptAesCbc(content, key, iv); // 解密结果
console.log("解密结果:", cbc_content);

`
image

因postman的内部库无法进行rsa和gcm加解密,需要使用外部库或者运行本地接口进行处理:

RSA:
image

GCM:
image
image

image

希望以上这些对大家有所帮助!

http://www.jsqmd.com/news/45033/

相关文章:

  • 汉诺塔问题详解
  • 20232307 2025-2026-1 《网络与系统攻防技术》实验七实验报告
  • 《R语言医学数据分析实战》学习记录--第一章 R语言介绍
  • 251119明天就要去适应比赛场地了
  • 【数据结构】哈希表的理论与实现 - 教程
  • pip安装第三方包
  • 李克特量表(Likert scale)
  • java---maven
  • 新来的外包,在大群分享了它的限流算法的实现
  • 状语从句学案
  • 用 Rust 与 Tesseract 进行英文数字验证码识别
  • 详细介绍:开源AI大模型、AI智能名片与S2B2C商城系统:个体IP打造与价值赋能的新范式
  • ThreadLocal 源码解析
  • 黑马程序员SpringCloud微服务开发与实战- Docker项目部署-03
  • C# 和 Tesseract 实现英文数字验证码识别
  • contig 和 scaffold的区别和联系
  • linux ftp自动
  • linux ftp脚本
  • 实用指南:【案例实战】鸿蒙分布式智能办公应用的架构设计与性能优化
  • Yanhua Mini ACDP-2 BMW ECU Package: EUC Clone License with Modules 3/8/27 Bench Interface Board
  • Yanhua Mini ACDP-2 BMW ECU Package: EUC Clone License with Modules 3/8/27 Bench Interface Board
  • 根据图片路径将文件下载到本地
  • 2025雅思一对一提分攻略:5家靠谱机构适配不同基础学员
  • redis-RDB/AOF-主从复制整理 - 指南
  • A few basic changes in PyQt6 and PySide6 regarding shader-based OpenGL graphics
  • 身份认证与信息管理:简单实验模拟钓鱼网页
  • 深入解析:Android Studio新手开发第二十四天
  • LDO-实践篇(1)
  • IO 2024 Round 3(团体赛)Unofficial Mirror【游记】【题解】
  • linux ftp用户目录