Postman在Linux上如何加密数据
导读:Postman 在 Linux 上的数据加密实践 一 前置说明 在 Linux 上,Postman 的加密能力来自其内置脚本环境与第三方库,与操作系统无关。常用做法是在请求的 Pre-request Script 中生成密文或签名,再通过...
Postman 在 Linux 上的数据加密实践
一 前置说明
- 在 Linux 上,Postman 的加密能力来自其内置脚本环境与第三方库,与操作系统无关。常用做法是在请求的 Pre-request Script 中生成密文或签名,再通过变量替换到请求体、查询参数或请求头中。Postman 内置 CryptoJS,可完成 MD5、SHA、AES、HMAC 等运算;RSA 需引入 forge.js 实现。为便于维护,建议将密钥、向量等放入 环境变量/全局变量,避免硬编码在脚本中。
二 常用加密场景与脚本示例
- 下表给出在 Pre-request Script 中可直接复用的典型写法(变量名可按项目约定调整):
| 场景 | 关键要点 | 示例脚本 |
|---|---|---|
| AES-CBC 加密 | 约定 key/iv;使用 CBC + PKCS7;输出 Base64 | const CryptoJS = require(“crypto-js”); function aesEncrypt(content, key, iv) { const k = CryptoJS.enc.Utf8.parse(key); const v = CryptoJS.enc.Utf8.parse(iv); return CryptoJS.AES.encrypt(content, k, { iv: v, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 } ).toString(); } const ct = aesEncrypt(“admin”, pm.globals.get(“aes_key”), pm.globals.get(“aes_iv”)); pm.environment.set(“encryptedUser”, ct); |
| RSA 公钥加密 | 通过 forge.js 加载公钥;常见填充 RSAES-PKCS1-V1_5;输出 Base64 | if (!pm.globals.has(“forgeJS”)) { pm.sendRequest(“https://lzq1357.gitee.io/various/forge_min.js”, (e,r)=> { if(!e) pm.globals.set(“forgeJS”, r.text()); } ); return; } eval(pm.globals.get(“forgeJS”)); const pub = forge.pki.publicKeyFromPem(pm.globals.get(“rsa_pub_key”)); const ct = forge.util.encode64(pub.encrypt(“sensitive”, “RSAES-PKCS1-V1_5”, { md: forge.md.sha256.create(), mgf1: { md: forge.md.sha1.create() } } )); pm.environment.set(“encryptedData”, ct); |
| MD5 签名/摘要 | 拼接待签名串(含 timestamp/nonce 等),计算 MD5 | const s = “cmd=” + pm.environment.get(“cmd”) + “& account=” + pm.environment.get(“account”) + “& ts=” + pm.environment.get(“ts”) + “& key=” + pm.globals.get(“sign_key”); const sign = CryptoJS.MD5(s).toString(); pm.environment.set(“sign”, sign); |
- 使用方式:将上述脚本放入请求的 Pre-request Script,在请求体/Header/Params 中以 { { encryptedUser} } 、{ { encryptedData} } 、{ { sign} } 引用变量值。
三 使用步骤
- 准备密钥与参数:在 Postman 的 Environment/Globals 中创建并保存如 aes_key、aes_iv、rsa_pub_key、sign_key 等变量(值来源于后端约定或安全存储)。
- 配置 Pre-request Script:按上表粘贴对应脚本;首次使用 forge.js 时会发起一次网络请求加载脚本,建议在集合/请求前执行一次以缓存。
- 在请求中替换变量:在 Body/Params/Headers 使用 { { 变量名} } ;发送请求前脚本会自动运行并注入密文/签名。
- 校验与调试:在 Console 查看输出,确认密文、签名是否符合服务端预期;必要时调整拼接顺序、编码与填充方式。
四 安全与进阶建议
- 密钥与 IV 管理:避免硬编码;使用 Environment/Globals 或外部密钥管理服务;为每次会话生成随机 IV,并与密文一并传输(服务端需同规则解析)。
- 传输层安全:确保接口使用 HTTPS;如服务要求客户端证书,在 Postman Settings → SSL certificate verification 中导入 CRT/PFX 证书及私钥,以建立双向 TLS 认证。
- 算法与填充:与后端明确约定算法、模式(如 AES-CBC)、填充(如 PKCS7)、编码(如 Base64)、字符集(如 UTF-8)与签名串拼接规则(含 timestamp/nonce 防重放)。
- 临时数据清理:敏感变量使用完可在 Tests 脚本中清除(如 pm.environment.unset(“encryptedUser”)),减少泄露面。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Postman在Linux上如何加密数据
本文地址: https://pptw.com/jishu/779764.html
