2.6 KiB
2.6 KiB
Nginx 下载日志解密工具
简介
此工具用于解密 Nginx 访问日志中 /v1/common/client/download 接口的加密 data 参数。
通讯密钥:c0qhq99a-nq8h-ropg-wrlc-ezj4dlkxqpzx
解密结果示例
从 Nginx 日志解密后,可以获得下载请求的详细信息,例如:
{"platform":"windows"}
{"platform":"mac"}
{"platform":"android"}
{"platform":"ios"}
还可能包含邀请码信息:
{"platform":"windows","invite_code":"ABC123"}
使用方法
方法 1: 使用 Shell 脚本(推荐)
# 解密单条日志
./decrypt_download.sh '172.245.180.199 - - [02/Feb/2026:04:35:47 +0000] "GET /v1/common/client/download?data=JetaR6P9e8G5lZg2KRiAhV6c%2FdMilBtP78bKmsbAxL8%3D&time=2026-02-02T04:35:15.032000 HTTP/1.1"'
# 解密多条日志
./decrypt_download.sh \
'data=JetaR6P9e8G5lZg2KRiAhV6c%2FdMilBtP78bKmsbAxL8%3D&time=2026-02-02T04:35:15.032000' \
'data=%2FFTAxtcEd%2F8T2MzKdxxrPfWBXk4pNPbQZB3p8Yrl8XQ%3D&time=2026-02-02T04:35:15.031000'
方法 2: 直接运行 Go 程序
go run cmd/decrypt_download_data/main.go
默认会解密内置的示例日志。
方法 3: 从 Nginx 日志文件批量解密
# 提取所有 download 请求并解密
grep "/v1/common/client/download" /var/log/nginx/access.log | \
while read line; do
./decrypt_download.sh "$line"
done
从 Nginx 服务器上使用
如果您在 Nginx 服务器上(root@localhost7701),可以这样操作:
- 查找所有 download 请求:
grep "/v1/common/client/download" /var/log/nginx/access.log
- 统计各平台下载量: 先解密所有日志,然后统计:
# 需要将此工具复制到服务器,或在本地解密后统计
- 实时监控:
tail -f /var/log/nginx/access.log | grep "/v1/common/client/download"
技术细节
加密方式
- 算法:AES-CBC with PKCS7 padding
- 密钥长度:256 位(通过 SHA256 哈希生成)
- IV 生成:基于时间戳的 MD5 哈希
参数说明
data: URL 编码的 Base64 加密数据time: 用于生成 IV 的时间戳字符串
解密流程
- URL 解码
data参数 - Base64 解码得到密文
- 使用通讯密钥和
time生成解密密钥和 IV - 使用 AES-CBC 解密得到原始 JSON 数据
相关文件
cmd/decrypt_download_data/main.go- 解密工具主程序decrypt_download.sh- Shell 脚本快捷方式pkg/aes/aes.go- AES 加密解密库
注意事项
⚠️ 安全提示:通讯密钥应妥善保管,不要泄露给未授权人员。