anpa1200/personal-pass-generator
GitHub: anpa1200/personal-pass-generator
一款用于授权安全评估的个性化密码候选列表生成器,通过种子值与多种变异策略产出有针对性的密码字典。
Stars: 0 | Forks: 0
# Personal Pass Generator (PPG)
为授权的渗透测试、密码策略审查和安全培训生成具有针对性、个性化的密码候选列表。
PPG 将一小组相关的种子值转化为去重后的候选密码,处理方式包括大小写变体、可选的 leet 替换、组合以及有界的前缀/后缀变异。它同时支持交互式访谈和可重复的命令行工作流。
## 功能
- 交互式收集姓名、日期、昵称、家人、宠物、公司、职业和难忘的词语
- 可使用可重复的 `--word` 参数进行脚本化生成
- 支持小写、首字母大写、大写以及可选的 leet 变体
- 支持可选的有界前缀/后缀变异
- 支持最小和最大长度过滤
- 输出经过排序和去重
- 除 Python 外无其他运行时依赖
## 安装说明
PPG 需要 Python 3.9 或更高版本。
```
git clone https://github.com/anpa1200/personal-pass-generator.git
cd personal-pass-generator
python -m pip install .
```
安装后会提供 `ppg` 命令。你也可以直接运行源文件:
```
python PPG_personal_pass_generator.py --help
```
## 快速入门
启动引导式交互工作流:
```
ppg
```
通过命令行种子值生成具有针对性的列表:
```
ppg \
--word alice \
--word acme \
--word 1992 \
--leet \
--min-length 8 \
--max-length 14 \
--output alice.wordlist.txt
```
添加单字符的前缀和后缀变异:
```
ppg --word alice --word acme --symbols --max-affix-length 1 \
--min-length 8 --max-length 14 --output assessment.wordlist.txt
```
## CLI 参考
| 选项 | 用途 |
| --- | --- |
| `-w`, `--word VALUE` | 添加种子值;可多次重复以提供多个值 |
| `-o`, `--output PATH` | 设置输出路径;默认为 `special_list.txt` |
| `--leet` | 在非交互模式下添加 leet-speak 变体 |
| `--symbols` | 添加前缀和后缀变异 |
| `--max-affix-length {1,2,3}` | 限制变异深度;默认为 `1` |
| `--min-length N` | 最小候选长度;默认为 `4` |
| `--max-length N` | 最大候选长度;默认为 `12` |
如果未提供 `--word` 值,PPG 将启动交互式工作流。
## 资源安全
变异深度对输出大小有指数级影响。建议从 `--max-affix-length 1`、两到五个高置信度的种子值以及较窄的长度范围开始测试。深度为 `2` 和 `3` 时会消耗大量的 CPU、内存和磁盘空间。
在评估之前:
1. 确认已获得书面授权及测试范围。
2. 尽量减少收集的个人数据。
3. 生成尽可能小的有效列表。
4. 应用账户锁定和速率限制控制。
5. 在工作结束后安全删除生成的文件。
## 开发
```
python -m pip install -e ".[dev]"
make check
```
`make check` 会运行 Ruff 和 pytest。GitHub Actions 会在所有受支持的 Python 版本中运行相同的检查。
## 指南与生态
- [Personal Pass Generator:完整指南](https://medium.com/@1200km/personal-pass-generator-ppg-the-ultimate-tool-for-custom-password-lists-4979a3a1385c)
- [使用 Crowbar 和 PPG 进行授权 RDP 测试](https://medium.com/@1200km/accessing-remote-desktops-a-beginner-s-guide-to-rdp-cracking-with-crowbar-and-ppg-tools-5f50027115b7)
- [1200km PT 工具与技术](https://1200km.com/pt-tools.html)
- [1200km 安全研究生态](https://1200km.com/)
- [原版 Passwords Toolkit](https://github.com/anpa1200/Passwords)
## Kali Linux 提交
该代码库包含了位于 [`debian/`](debian/) 目录下的 Debian/Kali 软件包元数据,以及一份完整的 [Kali 新工具请求草案](docs/kali-new-tool-request.md)。
## 许可证
版权所有 (C) Andrey Pautov。
基于 [GNU General Public License v3.0 or later](LICENSE) 授权。
标签:Python, 安全规则引擎, 密码学, 手动系统调用, 文档结构分析, 无后门, 逆向工具