Postman 在 Linux 上的数据加密实践
一 前置说明
二 常用加密场景与脚本示例
| 场景 | 关键要点 | 示例脚本 |
|---|---|---|
| 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); |
三 使用步骤
四 安全与进阶建议