温馨提示×

Postman在Linux上如何加密数据

小樊
43
2025-12-23 21:09:38
栏目: 网络安全

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”)),减少泄露面。

0