首页主机资讯CentOS中Postman如何加密请求

CentOS中Postman如何加密请求

时间2025-10-15 11:07:04发布访客分类主机资讯浏览779
导读:在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)中,选择rawJSON格式,输入{ { 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左侧导航栏,点击EnvironmentsAdd 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);
  • 进入PostmanSettingsGeneral,确保SSL certificate verification(SSL证书验证)已开启(默认开启),避免中间人攻击。

注意事项

  • 加密库兼容性:确保使用的CryptoJS、Forge.js版本与Postman兼容(建议使用最新稳定版);
  • 密钥管理:AES密钥、RSA私钥等敏感信息需严格保密,避免泄露;
  • 请求次数:Pre-request Script会在每次发送请求前执行,需注意避免重复加密导致的性能问题;
  • 服务端配合:加密配置需与服务端接口要求一致(如加密算法、签名规则、参数格式),否则会导致请求失败。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS中Postman如何加密请求
本文地址: https://pptw.com/jishu/726789.html
centos ssh如何安装软件 CentOS能否自定义Postman设置

游客 回复需填写必要信息