Document the project structure and setup while excluding local dependencies and IDE settings. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
97 lines
3.7 KiB
Markdown
97 lines
3.7 KiB
Markdown
# 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` 文件不纳入版本控制;通过依赖配置与锁定文件恢复环境。
|
||
- 文件名包含中文和空格,执行命令时请用引号包裹路径。
|