uch2ha/word-generator
GitHub: uch2ha/word-generator
一个高性能的Java词表生成工具,通过模板驱动规则和键盘布局转换生成海量定制化字典文件。
Stars: 0 | Forks: 0
# Word 生成器
Word Generator 是一个基于 Java 的工具,旨在使用灵活的、模板驱动的规则生成海量词表(可达数百万或数十亿种组合)。它是一个用于构建字典文件和自定义字符串数据集的强大实用程序,专为密码安全审计和哈希破解研究而优化。
### 目录
* [简介](#1-introduction)
* [入门指南](#2-getting-started)
* [配置指南](#3-configuration-guide)
* [架构与性能](#4-architecture--performance)
* [未来改进](#5-future-improvements)
## 1. 简介
与静态列表生成器不同,`WG` 允许您定义基础词、分隔符和后缀之间的复杂关系。它对于生成模仿人类行为的单词特别有用,例如以错误的键盘布局输入单词或使用特定的大小写模式。
### 功能特性
* **模板驱动:** 使用类似 `$core[0]` 和 `$s` 的标记构建单词。
* **双语支持:** 原生支持英语 (EN) 和俄语 (RU) 字母表。
* **键盘布局转换:** 自动在布局之间转换单词(例如 `привет` -> `ghbdtn`)。
* **递归后缀:** 生成指定长度内的字符、数字和符号组合。
* **大规模处理:** 处理文件拆分和大规模生成(数百 GB 的数据)而不会耗尽内存。
* **计算模式:** 在运行之前立即计算您的配置*将*生成的单词数量。
## 2. 入门指南
### 安装
1. **克隆仓库:**
git clone https://github.com/your-username/word-generator.git
cd word-generator
2. **使用 Maven 构建:**
mvn clean package
### 如何运行
使用以下语法运行可执行 JAR:
```
java -jar target/word-generator-1.0.0.jar
```
| 参数 | 示例 | 描述 |
|:--------------------|:-------------------------|:------------------------------------------------|
| `config_path` | `configs/my_rules.json` | JSON 配置文件的路径。 |
| `output_folder` | `output/` | 保存词表的目录。 |
| `max_file_size_gb` | `10` | 拆分为新文件之前的文件大小限制(以 GB 为单位)。|
| `calculation_mode` | `false` | `true` = 仅计算单词数;`false` = 保存到文件。 |
| `debug_ram` | `false` | `true` = 记录内存使用情况以进行调试。 |
## 3. 配置指南
单词生成的逻辑存储在 JSON 文件中。
### 基础配置示例 (`configs/simple.json`)
```
{
"name": "basic-gen",
"coreEn": [
[
"admin"
],
[
"pass"
]
],
"coreSplitSymbols": [
"_",
"."
],
"templates": [
"$core[0]$s$core[1]"
],
"minSuffixLength": 1,
"maxSuffixLength": 2,
"suffixSymbols": [
"!",
"?"
]
}
```
*此配置将生成类似 `admin_pass!`、`admin.pass??` 等单词。*
### 如何制作您自己的配置:
1. **核心列表 (`coreEn`/`coreRu`):** 定义基础词集合。
2. **模板:** 使用 `$core[index]` 从集合中选择,使用 `$s` 从 `coreSplitSymbols` 中选择。
3. **后缀:** `minSuffixLength` 和 `maxSuffixLength` 控制附加到基础词的字符长度。
4. **标志:**
* `generateRuAsEn`:在 EN 布局上输入 RU 单词。
* `generateWithCapitalization`:同时生成 `word` 和 `Word`。
## 4. 架构与性能
该应用程序专为速度和可靠性而构建:
* **批处理:** 后缀分批处理(默认:500k)。这可以防止应用程序在将数百万个单词写入磁盘之前在内存中生成并保存它们时耗尽 RAM(内存溢出错误)。
* **验证:** 每个单词都会根据目标字母表进行验证,以防止垃圾数据。
* **低占用:** 有效地清理内部集合,以在长时间运行期间保持稳定的内存占用。
## 5. 未来改进
- [ ] **多线程:** 使用 Java 线程进行并行处理,以充分利用现代 CPU。
- [ ] **增强配置:** 允许用户配置参数,如 `batchSize` 和更复杂的大小写规则(例如 camelCase, ALL CAPS)。
- [ ] **可配置字母表:** 允许用户通过 JSON 提供自己的自定义字符列表以进行后缀生成。
- [ ] **轻松执行:** 添加 `.sh` 启动脚本和 `Dockerfile`,以便更轻松地部署和使用。
- [ ] **Zip/Gzip 支持:** 直接写入压缩输出文件以节省磁盘空间。
- [ ] **排除列表:** 过滤掉已知单词或模式的选项。
- [ ] **测试与自动化**:添加单元测试并实施简单的 GitHub Actions CI/CD 流水线。
## 许可证
根据 MIT 许可证分发。
标签:ESC8, Homebrew安装, JS文件枚举, Maven, PoC, 内存优化, 域名枚举, 域名枚举, 大数据处理, 字典生成器, 密码审计, 数据集生成, 暴力破解, 模板引擎, 漏洞验证, 社会工程学, 网络安全, 递归生成, 键盘布局转换, 隐私保护