hi-server/docs/decrypt_download_logs.md
2026-02-03 04:40:23 -08:00

103 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Nginx 下载日志解密工具
## 简介
此工具用于解密 Nginx 访问日志中 `/v1/common/client/download` 接口的加密 `data` 参数。
通讯密钥:`c0qhq99a-nq8h-ropg-wrlc-ezj4dlkxqpzx`
## 解密结果示例
从 Nginx 日志解密后,可以获得下载请求的详细信息,例如:
```json
{"platform":"windows"}
{"platform":"mac"}
{"platform":"android"}
{"platform":"ios"}
```
还可能包含邀请码信息:
```json
{"platform":"windows","invite_code":"ABC123"}
```
## 使用方法
### 方法 1: 使用 Shell 脚本(推荐)
```bash
# 解密单条日志
./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 程序
```bash
go run cmd/decrypt_download_data/main.go
```
默认会解密内置的示例日志。
### 方法 3: 从 Nginx 日志文件批量解密
```bash
# 提取所有 download 请求并解密
grep "/v1/common/client/download" /var/log/nginx/access.log | \
while read line; do
./decrypt_download.sh "$line"
done
```
## 从 Nginx 服务器上使用
如果您在 Nginx 服务器上root@localhost7701),可以这样操作:
1. **查找所有 download 请求**
```bash
grep "/v1/common/client/download" /var/log/nginx/access.log
```
2. **统计各平台下载量**
先解密所有日志,然后统计:
```bash
# 需要将此工具复制到服务器,或在本地解密后统计
```
3. **实时监控**
```bash
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 的时间戳字符串
### 解密流程
1. URL 解码 `data` 参数
2. Base64 解码得到密文
3. 使用通讯密钥和 `time` 生成解密密钥和 IV
4. 使用 AES-CBC 解密得到原始 JSON 数据
## 相关文件
- `cmd/decrypt_download_data/main.go` - 解密工具主程序
- `decrypt_download.sh` - Shell 脚本快捷方式
- `pkg/aes/aes.go` - AES 加密解密库
## 注意事项
⚠️ **安全提示**:通讯密钥应妥善保管,不要泄露给未授权人员。