1. 加密类型及应对策略
特点:加密解密使用同一密钥。
处理方法:
向开发获取密钥和加密算法(如AES-CBC、AES-ECB)。
使用代码或工具解密响应数据:
python
复制
from Crypto.Cipher import AES import base64 def decrypt_aes(key, encrypted_data): cipher = AES.new(key.encode(), AES.MODE_ECB) decrypted = cipher.decrypt(base64.b64decode(encrypted_data)) return decrypted.decode().rstrip('\0') # 去除填充字符
特点:公钥加密,私钥解密。
处理方法:
使用开发提供的公钥加密请求参数,私钥解密响应。
推荐工具:
Postman + Pre-request Script(调用Node.js crypto
库)。
Python 的 rsa
或 pycryptodome
库。
特点:参数拼接后生成签名,防止篡改。
处理方法:
按规则拼接参数,生成签名并添加到请求头。
示例(Python):
python
复制
import hashlib def generate_sign(params, secret_key): sorted_params = '&'.join([f'{k}={v}' for k, v in sorted(params.items())]) sign = hashlib.sha256(f"{sorted_params}&{secret_key}".encode()).hexdigest() return sign
Postman:通过Pre-request Script自动处理加密(需编写JS脚本)。
JMeter:使用BeanShell或JSR223调用Java代码实现加解密。
Python + Requests:灵活集成加解密逻辑,适合自动化测试框架。
Q:无法获取密钥?
与开发协商提供测试环境的固定密钥,或使用Mock接口绕过加密。
Q:加密算法复杂?
要求开发封装加解密工具类,测试直接调用。
录制工具辅助:使用Charles/Fiddler抓包,分析加密前后的数据格式。
自动化封装:将加解密函数写入测试框架的公共模块,减少重复代码。
文档沉淀:记录加密规则和密钥管理规范,避免团队信息差。
想学习更多测试实战技巧?
关注我的小红书账号 海姐测试星球
每日分享:
✅ 接口测试/性能测试高阶教程
✅ 自动化框架设计干货
✅ 职场进阶与团队协作经验
点击关注,解锁测试工程师的成长秘籍!