Postman关于AES的加解密

news/2025/11/19 23:24:31/文章来源:https://www.cnblogs.com/prozyx/p/19244380

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.mzph.cn/news/970472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汉诺塔问题详解

《具体数学》第一章习题 12 bonus: 有柱子 A,B,C, 有 \(m_i\) 个半径为 \(i\) 的碟子,规定时刻大碟子不能在小的碟子上方,初始碟子都在柱 A,每次操作将一个柱子最上面碟子挪到另一个柱子最上面,末态柱子按原顺序(…

发布与订阅者模式-复盘

背景传统点对点调用让服务之间像蜘蛛网一样缠绕:一次改动,全网抖动。 发布-订阅(Pub/Sub)通过Broker把“谁发”与“谁收”彻底解耦,将调用关系转化为“主题-订阅”声明式关系,成为现代微服务、实时推送、事件驱动…

20232307 2025-2026-1 《网络与系统攻防技术》实验七实验报告

20232307 2025-2026-1 《网络与系统攻防技术》实验七实验报告 1.实验内容及要求 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法。具体实践有 (1)简单应用SET工具建立冒名网站 (2)e…

《R语言医学数据分析实战》学习记录--第一章 R语言介绍

第一章 R语言介绍 内容记录 R和python很类似,可以通过对比python与R的区别进行学习,尤其对R中独有或有区别的部分,做特殊记录和学习。 有几个功能为R中特别处理:工作目录管理:通过getwd()获得当前工作目录,通过s…

251119明天就要去适应比赛场地了

我们学习室真绝了,上午没人来,晚上九点之后就关门了。 当然了,我九点之后又去了 读英文的东西真痛苦,啥时候才能无痛直接阅读啊啊啊啊。还是要加油吧, 今晚去随便打了打,保持一下手感,有的老大叔真不讲究,一来…

【数据结构】哈希表的理论与实现 - 教程

【数据结构】哈希表的理论与实现 - 教程2025-11-19 23:11 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block …

在阿里云上部署Redis

首先确定一个下载目录:cd /user #进入usr文件夹 mkdir redis #创建redis文件包下载redis安装包:wget http://download.redis.io.release.redis-6.0.1.tar.gz #获取redis安装包解压安装包tar -xzvf redis-6.0.1.tar.gz …

pip安装第三方包

https://pypi.tuna.tsinghua.edu.cn/simple

李克特量表(Likert scale)

李克特量表(Likert scale)是社会科学和市场研究中最常用的一种量表形式,用于衡量态度、意见或感知等心理变量。 核心特点对称与平衡: 量表通常是对称且平衡的,即积极和消极的选项数量相等,中间有一个中性点。 等…

java---maven

java及maven: 前提是已经安装了java:下载maven:https://maven.apache.org/然后下载:https://maven.apache.org/download.cgi找到下载:下载安装,然后放到一个没有中文路径的文件夹里面,然后配置环境变量: 搜索【…

新来的外包,在大群分享了它的限流算法的实现

1. 令牌桶按用户维度限流 前文golang/x/time/rate演示了基于整体请求速率的令牌桶限流; 那基于用户id、ip、apikey请求速率的限流(更贴近生产的需求), 阁下又该如何应对? 那这个问题就从全局速率变成了按照用户维度…

用 Rust 与 Tesseract 进行英文数字验证码识别

Rust 是一门注重性能与安全的系统编程语言,越来越多用于图像处理和自动化领域。本文将介绍如何使用 Rust 调用 Tesseract 引擎,实现简单的英文数字验证码识别。 更多内容访问ttocr.com或联系1436423940 一、开发准备…

详细介绍:开源AI大模型、AI智能名片与S2B2C商城系统:个体IP打造与价值赋能的新范式

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

ThreadLocal 源码解析

TreadLocal ThreadLocal解决的是线程内部变量的问题,并不是为了解决并发与共享变量的问题。 堆中有两个引用指向ThreadLocal,一个是ThreadLocal本身(强引用),一个ThreadLocalMap中Entry的key(弱引用)。 ThreadL…

黑马程序员SpringCloud微服务开发与实战- Docker项目部署-03

黑马程序员SpringCloud微服务开发与实战- Docker项目部署-03Posted on 2025-11-19 22:59 心默默言 阅读(0) 评论(0) 收藏 举报1

C# 和 Tesseract 实现英文数字验证码识别

验证码识别是一项常见的图像处理任务,尤其在自动化测试和数据采集场景中非常实用。本文将介绍如何在 C# 环境下,结合 Tesseract OCR 完成英文数字验证码的自动识别。 一、开发环境准备安装 Visual Studio 更多内容访…

linux ftp自动

您提到的“Linux FTP自动”可能有多种含义,以下是几种常见情况的解释和对应的Linux命令或脚本示例:1. 自动 FTP 上传文件(使用 ftp 命令) 如果您想在 Linux 系统中自动上传文件到 FTP 服务器,可以使用 ftp 命令结…

linux ftp脚本

在 Linux 系统中,ftp 命令行工具是用于与 FTP 服务器进行交互的常用工具。如果你想要编写一个 FTP 脚本,可以利用 ftp 命令结合 bash 脚本来实现自动化操作。 以下是一个简单的 FTP 脚本示例,用于上传文件到 FTP 服…