HTTPS 已经解密了,响应 Body 却还是一堆看不懂的二进制?这通常说明 App 在 HTTPS 连接里又加了 一层自己的加密,最常见的是 AES。如果你在调试自己的 App,或者有授权的测试项目,手里本来就有密钥,这时可以用 HTTPS Capture 在请求详情里直接解密这些 Body。
AES 解密功能做什么
AES 解密规则告诉 HTTPS Capture 哪些 URL 的 Body 是加密的、应该怎么解。查看匹配的请求时,会出现一个 AES 解密 开关,打开就能看到明文。
解密只影响 你看到的内容,App 和服务器之间传输的数据不会被修改。
第一步:添加 AES 规则
- 在抓包页点 规则 → AES 解密。
- 打开 启用 AES 解密,点 +。
- URL 匹配模式:Body 被加密的接口路径,选 包含 或 正则表达式。
- 应用到:请求 Body、响应 Body,或者两者都解。
- 密钥长度:128-bit、192-bit 或 256-bit。
- 密钥:直接输入文本;二进制密钥可以加
base64:前缀粘贴,比如base64:q83vEjRWeJA=。 - 模式:CBC 需要填写 IV(同样支持文本或
base64:),ECB 不需要 IV。 - 填充:绝大多数情况选 PKCS7;只有数据本身已经按 16 字节对齐时才选 None。
- 保存。
第二步:查看解密后的 Body
- 在抓包列表里打开一条匹配的请求。
- 点 数据 区域里的 Body,打开完整预览。
- 打开顶部的 AES 解密 开关。
现在 Preview、Raw、Hex 视图显示的都是解密后的数据,JSON 会自动格式化。如果解出来的不是有效文本,会显示一条简短提示,这时检查一下密钥、IV、模式和填充是否正确。
前提和限制
- Body 必须是 原始的加密字节。如果接口把密文转成 Base64 文本返回,或者放在某个 JSON 字段里,这条规则没法直接解。
- 只支持 CBC 和 ECB 模式的 AES,不支持 GCM、CTR 等模式。
- 密钥或 IV 太短会补零,太长会按所选长度截断。这和很多 App 的实现一致,但如果结果不对,先仔细核对密钥。
- 对同一个 URL 和方向,只使用第一条匹配的已启用规则。
合规使用
只解密你自己开发、或明确获得授权测试的 App 的流量。填写的密钥会随规则保存在手机上,不再需要的规则请及时删除。
准备好试试了吗?
HTTPS Capture · Capture and decrypt HTTPS traffic on iPhone
App Store 免费下载