# 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` 文件不纳入版本控制;通过依赖配置与锁定文件恢复环境。 - 文件名包含中文和空格,执行命令时请用引号包裹路径。