溫馨提示×

CentOS中Postman如何加密請求

小樊
47
2025-10-15 03:11:05
欄目: 網絡安全

在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會在每次發送請求前執行,需注意避免重復加密導致的性能問題;
  • 服務端配合:加密配置需與服務端接口要求一致(如加密算法、簽名規則、參數格式),否則會導致請求失敗。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女