在实际开发中,许多开发者在使用Postman进行API接口测试时,常会遇到需要加密接口参数的情况——比如调用某些安全等级较高的接口,必须对请求体或签名做预处理。不少人第一反应是手动计算再粘贴到工具里,其实完全可以通过Pre-request Script自动化加密流程,既省时又高效。下面直接介绍两种最常用的加密方式,按照步骤操作即可顺利运行。
- AES加密:首先通过npm安装CryptoJS库(若环境不支持npm,也可手动引入CDN压缩包)。随后在Pre-request Script中调用AES算法对原始数据进行加密,例如
var encryptedData = CryptoJS.AES.encrypt(data, "your-secret-key").toString()。加密后的字符串通常以Base64格式输出,直接存入环境变量或全局变量,后续请求引用变量即可。需注意,密钥长度和加密模式(如ECB/CBC)必须与服务端协商一致,否则解密将失败。 - RSA加密:流程稍显复杂,但逻辑清晰。先从服务提供方获取RSA公钥(通常为PEM格式字符串),将其存储为环境变量或集合变量。然后在Pre-request Script中引入forge库(同样可通过CDN或npm安装)。使用公钥对明文加密,例如
var encryptedText = publicKey.encrypt(clearText, 'RSA-ES-PKCS1-V1_5', {md: forge.md.sha256.create(), mgf: forge.mgf.mgf1.create(forge.md.sha1.create())})。加密后的结果通常是Base64编码的密文字符串,同样存储到环境变量中供请求调用。需要留意,RSA加密对原始数据长度有限制,若明文过长,建议先使用AES加密数据,再用RSA加密AES密钥(即混合加密方案)。
两种加密方法的核心思路一致:在请求发送前,通过脚本动态生成加密后的数据,再借助变量传递到请求参数或请求体中。这样做不仅能显著降低手动出错的概率,还能让接口测试流程更贴近真实的客户端行为。你可以根据自身的密钥管理方式和性能需求选择合适的方法,实践中两者也可组合使用,进一步提升接口安全性。
