Files
tulin-code/README.md
Whale-Fall-Code 418a0411d1 Initialize encryption and JavaScript reverse-engineering study repository
Document the project structure and setup while excluding local dependencies and IDE settings.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-10-09 23:25:05 +08:00

97 lines
3.7 KiB
Markdown
Raw Permalink 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.

# tuling-code
Python 与 JavaScript 加解密、JS 逆向学习示例,按学习日期和主题整理,包含基础算法演示、Webpack 结构分析以及网站接口参数加密与响应解密案例。
## 学习内容
- **对称加密**:DES、AES,CBC 模式、填充方式和 Base64 编解码。
- **非对称加密**:RSA 公私钥生成、加解密,以及 JavaScript 与 Python 实现。
- **自定义算法分析**:接口请求参数加密与响应数据解密。
- **JavaScript 执行机制**:自执行函数、Promise 异步任务和 `_invoke` 方法。
- **Webpack 逆向**:模块加载结构、运行环境与常见问题。
- **Python 调用 JavaScript**:使用 ExecJS 执行加解密逻辑,并通过 Requests 调用接口。
## 目录结构
```text
tuling-code/
├── 对称加密-2026-08-21/ # DES 示例与自然科学案例
├── 对称加密-AES-2026-08-24/ # AES 示例、商业观察与建筑市场案例
├── 魔改算法-2026-08-28/ # 吉林长春产权交易中心案例
├── 非对称加密-2026-08-31/ # RSA 示例、中国移动登录与观鸟记录中心案例
├── 非对称加密-2026-09-02/ # JS 执行机制与五矿集团案例
├── webpack-2026-09-04/ # Webpack 结构分析与 36Kr 案例
├── pyproject.toml # Python 项目与依赖配置
├── uv.lock # Python 依赖锁定文件
├── package.json # Node.js 依赖配置
└── package-lock.json # Node.js 依赖锁定文件
```
## 环境准备
需要 Python **3.11 或以上版本**、Node.js **20.19 或以上版本**(包含 npm),以及 Python 包管理工具 uv。ExecJS 调用 JavaScript 时需要可用的 JavaScript 运行时,建议使用 Node.js。
在仓库根目录安装依赖:
```bash
uv sync
npm ci
```
主要依赖:
| 环境 | 依赖 | 用途 |
| --- | --- | --- |
| Python | `pycryptodome` | DES、AES 等加解密 |
| Python | `rsa` | RSA 公私钥生成与加解密 |
| Python | `pyexecjs2` | 调用 JavaScript 代码 |
| Python | `requests` | HTTP 请求 |
| Node.js | `crypto-js` | JavaScript 对称加密与摘要算法 |
| Node.js | `jsencrypt`、`node-rsa` | JavaScript RSA 加解密 |
## 运行示例
以下命令从仓库根目录执行。
### Python DES 示例
```bash
uv run python "对称加密-2026-08-21/2. python实现des加解密.py"
```
### Python AES 示例
```bash
uv run python "对称加密-AES-2026-08-24/2. python实现aes加解密.py"
```
### Python RSA 示例
```bash
uv run python "非对称加密-2026-08-31/python环境实现rsa加解密.py"
```
### JavaScript DES 示例
```bash
node "对称加密-2026-08-21/1. js环境实现des加解密.js"
```
### 网站接口案例
部分 Python 案例通过相对路径读取同目录的 JavaScript 文件,需要先进入对应案例目录再运行。例如:
```bash
cd "对称加密-AES-2026-08-24/实战案例-建筑市场"
uv run python "python调用.py"
```
网站接口、请求参数和加密逻辑可能随时间变化;案例记录的是学习时的实现,不保证当前接口仍可直接使用。需要登录或会话信息的案例,应自行在本地配置有效凭证,不要将 Cookie、Token 或密码提交到仓库。
## 注意事项
- 本仓库用于学习与研究,网站案例仅应在获得授权并遵守相关服务规则的前提下使用。
- 示例中的固定密钥、固定 IV、DES 和 1024 位 RSA 等写法用于演示,不应直接用于生产环境。
- `node_modules/`、`.venv/`、Python 缓存、IDE 配置和本地 `.env` 文件不纳入版本控制;通过依赖配置与锁定文件恢复环境。
- 文件名包含中文和空格,执行命令时请用引号包裹路径。