首页主机资讯CentOS中Postman如何进行数据加密

CentOS中Postman如何进行数据加密

时间2025-10-13 13:28:04发布访客分类主机资讯浏览1153
导读:CentOS中Postman数据加密的实现方法 在CentOS系统中使用Postman时,数据加密主要围绕传输加密、存储加密、请求/响应数据加密三个核心场景展开,以下是具体操作步骤: 一、基础安全配置(传输层加密与敏感信息保护) 在进行数据...

CentOS中Postman数据加密的实现方法

在CentOS系统中使用Postman时,数据加密主要围绕传输加密存储加密请求/响应数据加密三个核心场景展开,以下是具体操作步骤:

一、基础安全配置(传输层加密与敏感信息保护)

在进行数据加密前,需先完成Postman的基础安全设置,确保传输通道安全及敏感信息不泄露:

  • 使用HTTPS协议:确保所有API请求通过https://开头,启用SSL/TLS加密传输,防止数据在传输过程中被窃取或篡改。
  • 禁用敏感信息保存:进入Postman设置(SettingsGeneral),勾选“Do not save sensitive information”(不保存敏感信息),避免API密钥、密码等敏感数据持久化存储。
  • 配置环境变量:将敏感信息(如API密钥、数据库密码)存储在环境变量中(EnvironmentAdd),在请求中使用{ { variable_name} } 引用,避免硬编码。
  • 设置代理(可选):若网络环境需要,可通过SettingsProxy配置代理服务器,进一步保护网络通信安全。

二、存储数据加密(加密Postman中的敏感数据)

Postman支持对存储在本地的敏感数据进行加密,增加一层本地保护:

  • 内置加密功能:Postman提供数据加密选项,可通过SettingsSecurity开启“Encrypt local data”(加密本地数据),输入主密码后,所有本地存储的集合、环境变量等数据将被加密。
  • 注意事项:加密后需妥善保管主密码,忘记密码将无法恢复加密数据。

三、请求数据加密(动态加密请求参数/报文)

针对需要加密的API请求,可通过Pre-request Script(预请求脚本)动态加密请求数据,常见算法包括AES、RSA、MD5等:

1. AES对称加密(适用于高效加密场景)

AES是一种对称加密算法,加密与解密使用相同密钥。以下是在Pre-request Script中实现AES+Base64加密的示例:

// 定义AES密钥(需与后端一致)
var aesKey = "your-aes-key-123";
     // 16/24/32位长度

// 判断是否为目标环境(如product环境)及POST请求
if ('POST' === request.method &
    &
 'product' === pm.environment.get("env")) {

    // 加密函数(使用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加密字符串
    }
    

    // 获取请求体数据(需为JSON字符串)
    var requestData = pm.request.body.raw;
    
    // 执行加密
    var encryptedData = encrypt(requestData, aesKey);
    
    // 将加密后的数据设置为请求体
    pm.request.body.raw = encryptedData;

}
    

说明:上述脚本会在发送POST请求前,将请求体数据用AES加密(ECB模式+PKCS7填充),替换原请求体。

2. RSA非对称加密(适用于高安全需求场景)

RSA是一种非对称加密算法,使用公钥加密、私钥解密。适用于敏感数据(如密码、支付信息)的加密:

// 引入CryptoJS库(Postman内置)
const CryptoJS = require('crypto-js');
    

// 公钥(需从后端获取)
const publicKey = `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu1SU1LfVLPHCozMxH2Mo
4lgOEePzNm0tRgeLezV6ffAt0gunVTLw7onLRnrq0/IzW7yWR7QkrmBL7jTKEn5u
+qKhbwKfBstIs+bMY2Zkp18gnTxKLxoS2tFczGkPLPgizskuemMghRniWaoLcyeh
kd3qqGElvW/VDL5AaWTg0nLVkjRo9z+40RQzuVaE8AkAFmxZzow3x+VJXdi5+gcJ
wIDAQAB
-----END PUBLIC KEY-----`;


// 加密函数(使用RSA公钥)
function encryptRSA(data) {

    const encrypted = CryptoJS.RSA.encrypt(data, publicKey, {

        mode: CryptoJS.mode.ECB,
        padding: CryptoJS.pad.Pkcs1
    }
    );
    
    return encrypted.toString();

}


// 示例:加密请求参数
const requestData = {
 username: 'admin', password: '123456' }
    ;
    
const encryptedData = encryptRSA(JSON.stringify(requestData));

pm.request.body.raw = JSON.stringify({
 data: encryptedData }
    );
    

说明:上述脚本将请求参数转换为JSON字符串后,用RSA公钥加密,适用于需要高安全性的场景。

3. MD5签名(适用于接口鉴权)

MD5是一种哈希算法,用于生成数据摘要(不可逆),常用于接口签名鉴权,防止数据篡改:

// 获取请求参数(包括URL query、body)
const params = pm.request.url.query.all();

const body = pm.request.body.raw ? JSON.parse(pm.request.body.raw) : {
}
    ;


// 组合所有参数(按key升序排序)
let sortedParams = {
}
    ;
    
Object.keys(params).sort().forEach(key =>
 {
    
    sortedParams[key] = params[key].value;

}
    );
    
Object.keys(body).sort().forEach(key =>
 {
    
    sortedParams[key] = body[key];

}
    );
    

// 添加appid和appsecret(需与后端一致)
sortedParams.appid = 'your-appid';
    
sortedParams.appsecret = 'your-appsecret';
    

// 生成签名字符串(key=value&
    key=value格式)
let signString = Object.keys(sortedParams)
    .map(key =>
 `${
key}
=${
sortedParams[key]}
    `)
    .join('&
    ');
    

// 计算MD5并转为大写
const sign = CryptoJS.MD5(signString).toString().toUpperCase();


// 将签名添加到请求头
pm.request.headers.add({
 key: 'sign', value: sign }
    );
    

说明:上述脚本生成请求参数的MD5签名,添加到请求头中,用于后端验证请求合法性。

四、响应数据解密(处理加密的返回结果)

若接口返回加密数据(如AES加密的JSON字符串),可通过Tests脚本解密并提取有效信息:

// 引入CryptoJS库
const CryptoJS = require('crypto-js');
    

// 获取响应数据
const response = pm.response.json();
    
const encryptedData = response.data;
     // 假设返回的加密字段为data

// 定义AES密钥(需与加密密钥一致)
const aesKey = "your-aes-key-123";


// 解密函数
function decryptAES(encryptedText, keyStr) {
    
    const key = CryptoJS.enc.Utf8.parse(keyStr);

    const decryptedBytes = CryptoJS.AES.decrypt(encryptedText, key, {

        mode: CryptoJS.mode.ECB,
        padding: CryptoJS.pad.Pkcs7
    }
    );
    
    return decryptedBytes.toString(CryptoJS.enc.Utf8);

}


// 执行解密
try {
    
    const decryptedData = decryptAES(encryptedData, aesKey);
    
    console.log('Decrypted Data:', decryptedData);
    
    // 将解密后的数据保存到环境变量(可选)
    pm.environment.set('decrypted_data', decryptedData);

}
 catch (error) {
    
    console.error('Decryption Error:', error.message);

}
    

说明:上述脚本解密接口返回的加密数据,并将结果保存到环境变量中,方便后续测试使用。

注意事项

  • 密钥管理:AES密钥、RSA私钥等敏感信息需妥善保管,避免泄露(可通过环境变量或密钥管理服务存储)。
  • 算法选择:对称加密(如AES)适用于高效加密场景,非对称加密(如RSA)适用于高安全需求场景,MD5适用于签名鉴权。
  • 兼容性:确保后端与Postman的加密算法、密钥一致,避免加密/解密失败。

通过以上方法,可在CentOS系统中使用Postman实现数据加密,提升API测试的安全性。

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


若转载请注明出处: CentOS中Postman如何进行数据加密
本文地址: https://pptw.com/jishu/724661.html
如何在CentOS上通过Postman进行性能测试 CentOS下Postman如何使用脚本功能

游客 回复需填写必要信息