CentOS中Postman如何加密请求
导读:在CentOS中使用Postman加密请求的操作步骤 1. 准备加密环境:安装Postman并导入加密库 首先,需在CentOS上安装Postman(通过下载Linux版安装包并解压,创建符号链接到/usr/bin/postman以实现全局...
在CentOS中使用Postman加密请求的操作步骤
1. 准备加密环境:安装Postman并导入加密库
首先,需在CentOS上安装Postman(通过下载Linux版安装包并解压,创建符号链接到/usr/bin/postman
以实现全局调用)。为支持加密操作,需获取加密库文件:
- CryptoJS(对称加密,如AES):Postman内置,无需额外安装;
- Forge.js(非对称加密,如RSA):需下载其JavaScript文件(可从GitHub仓库获取),并将其内容复制到Postman的Globals(全局变量)中(变量名为
forgeJS
,值为forge.js的全部代码),以便在Pre-request Script中调用。
2. 配置对称加密(AES):加密请求体
若需对请求体(如JSON数据)进行AES加密,可通过Pre-request Script(预请求脚本)实现。以下是具体步骤:
- 步骤1:在Postman请求的Pre-request Script标签页中,编写加密脚本。脚本需完成以下操作:
- 获取明文请求数据(如
{ "username": "admin", "password": "123456"}
); - 定义AES密钥(如
qwer45tghtyuilko
,需与服务端一致); - 使用CryptoJS的AES算法(ECB模式、Pkcs7填充)加密数据,并转换为Base64字符串。
- 获取明文请求数据(如
- 示例脚本:
// 获取明文请求数据(可根据实际情况调整) var requestData = { "username": "admin", "password": "123456"} ; var aesKey = "qwer45tghtyuilko"; // 替换为你的AES密钥 // AES加密函数(CryptoJS内置) function encrypt(word, keyStr) { var key = CryptoJS.enc.Utf8.parse(keyStr); var srcs = CryptoJS.enc.Utf8.parse(word); var encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 } ); return encrypted.toString(); // 返回Base64加密结果 } // 执行加密并设置环境变量(供请求体使用) var encryptedData = encrypt(JSON.stringify(requestData), aesKey); pm.environment.set("encryptedBody", encryptedData); // 存储到环境变量
- 步骤2:在请求体(Body)中,选择raw→JSON格式,输入
{ { encryptedBody} }
(引用环境变量中的加密数据),替换原始明文。
3. 配置非对称加密(RSA):生成签名或加密敏感数据
若需对请求参数进行RSA签名(防篡改)或加密(保护敏感信息),需通过Pre-request Script调用Forge.js库。以下是具体步骤:
- 步骤1:将forge.js文件的内容复制到Postman的Globals中(变量名为
forgeJS
)。 - 步骤2:在Pre-request Script中编写RSA加密/签名脚本。例如,对请求参数进行MD5哈希签名:
// 引入forge库 var forge = eval(pm.globals.get("forgeJS")); // 获取请求参数(排除sign字段) var params = { userName: "admin", password: "123456" } ; delete params.sign; // 排除已有签名 // 1. 拼接参数(按字母排序) var sortedKeys = Object.keys(params).sort(); var paramString = sortedKeys.map(key => key + "=" + params[key]).join("& "); // 2. 计算MD5哈希(作为签名) var md5Hash = forge.md.md5.create(); md5Hash.update(paramString, "utf8"); var signature = md5Hash.digest().toHex(); // 十六进制签名 // 3. 将签名添加到请求参数 params.sign = signature; pm.environment.set("requestData", JSON.stringify(params)); // 存储到环境变量
- 步骤3:在请求体(Body)中,使用
{ { requestData} }
(引用环境变量中的加密参数)替换原始数据。
4. 设置环境变量:存储敏感信息
为避免敏感信息(如AES密钥、RSA私钥、API密钥)硬编码在脚本中,需通过环境变量管理:
- 步骤1:在Postman左侧导航栏,点击Environments→Add Environment,创建新环境(如“ProdEnv”)。
- 步骤2:在环境变量编辑界面,添加以下变量(根据实际需求调整):
aesKey
:AES加密密钥(如qwer45tghtyuilko
);rsaPrivateKey
:RSA私钥(用于签名/加密);apiBaseUrl
:API基础URL(可选)。
- 步骤3:在Pre-request Script中,通过
pm.environment.get("变量名")
获取环境变量值(如var aesKey = pm.environment.get("aesKey");
)。
5. 启用HTTPS:加密传输层
为确保请求在传输过程中不被窃取,需强制使用HTTPS协议:
- 在Postman请求的URL输入框中,将
http://
替换为https://
(如https://api.example.com/login
); - 进入PostmanSettings→General,确保SSL certificate verification(SSL证书验证)已开启(默认开启),避免中间人攻击。
注意事项
- 加密库兼容性:确保使用的CryptoJS、Forge.js版本与Postman兼容(建议使用最新稳定版);
- 密钥管理:AES密钥、RSA私钥等敏感信息需严格保密,避免泄露;
- 请求次数:Pre-request Script会在每次发送请求前执行,需注意避免重复加密导致的性能问题;
- 服务端配合:加密配置需与服务端接口要求一致(如加密算法、签名规则、参数格式),否则会导致请求失败。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS中Postman如何加密请求
本文地址: https://pptw.com/jishu/726789.html