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

2.6 KiB
Raw Blame History

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可以这样操作

  1. 查找所有 download 请求
grep "/v1/common/client/download" /var/log/nginx/access.log
  1. 统计各平台下载量 先解密所有日志,然后统计:
# 需要将此工具复制到服务器,或在本地解密后统计
  1. 实时监控
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 加密解密库

注意事项

⚠️ 安全提示:通讯密钥应妥善保管,不要泄露给未授权人员。