在CentOS系统中使用Postman进行数据加密的核心方法
Postman作为API调试工具,可通过传输层加密(保障数据传输安全)和请求数据加密(保护请求内容的机密性)两类方式实现数据加密。以下是具体操作指南:
传输层加密是保障数据在客户端与服务器之间传输安全的基础,需确保所有API请求通过HTTPS协议发送,防止数据被窃听或篡改。
操作步骤:
通过环境变量存储敏感信息(如API密钥、密码、Base URL),避免在请求中直接暴露明文,降低泄露风险。
操作步骤:
api_key、password)和对应的加密值(如123456的MD5加密值)。{{变量名}}引用环境变量(如"api_key": "{{api_key}}")。针对请求中的敏感字段(如密码、身份证号),可使用加密算法(如MD5、Base64、AES、RSA)进行加密,确保数据内容的机密性。
MD5可将明文密码转换为固定长度的哈希值,无法逆向解密,常用于用户登录密码加密。
操作步骤:
const CryptoJS = require('crypto-js');
let plainPassword = "123456"; // 明文密码(可从环境变量获取)
let encryptedPassword = CryptoJS.MD5(plainPassword).toString(); // MD5加密
pm.environment.set("password", encryptedPassword); // 存储到环境变量
"password": "{{password}}"。Base64可将字符串转换为可打印字符,常用于编码二进制数据或简单敏感信息(如API密钥),但需注意:Base64并非加密算法,可被轻易解码,敏感数据需配合其他加密方式使用。
操作步骤:
const CryptoJS = require('crypto-js');
let apiKey = "your_api_key";
let encodedApiKey = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(apiKey)); // Base64编码
pm.environment.set("encoded_apiKey", encodedApiKey); // 存储到环境变量
"Authorization": "Basic {{encoded_apiKey}}"。AES是一种对称加密算法,加密和解密使用相同密钥,适用于加密大量敏感数据(如用户信息)。
操作步骤:
aXGr7jvD+yq87v9eTIAm0o5LFqAWsPgVmC37fewH):const CryptoJS = require('crypto-js');
let data = {"name": "张三", "id_card": "123456789012345678"}; // 待加密数据
let secretKey = "aXGr7jvD+yq87v9eTIAm0o5LFqAWsPgVmC37fewH"; // AES密钥
let encryptedData = CryptoJS.AES.encrypt(JSON.stringify(data), CryptoJS.MD5(secretKey), {
iv: [], // ECB模式无需IV
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7
}).toString(); // AES加密
pm.environment.set("encrypted_data", encryptedData); // 存储到环境变量
"data": "{{encrypted_data}}"。RSA是一种非对称加密算法,使用公钥加密、私钥解密,适用于数据签名(如验证请求合法性)。
操作步骤:
const CryptoJS = require('crypto-js');
const forge = require('node-forge'); // 需安装forge模块(通过npm install forge)
let data = {"token": "abc123", "timestamp": Date.now()}; // 待加密数据
let publicKeyPem = pm.globals.get("RSA_Public_Key"); // 从全局变量获取公钥
let publicKey = forge.pki.publicKeyFromPem(publicKeyPem); // 解析公钥
let encryptedData = forge.util.encode64(publicKey.encrypt(JSON.stringify(data), 'RSAES-PKCS1-V1_5')); // RSA加密
pm.environment.set("encrypted_token", encryptedData); // 存储到环境变量
"X-Auth-Token": "{{encrypted_token}}"。