Ki1shan/HashForge

GitHub: Ki1shan/HashForge

一个基于 tkinter 的双面板图形化哈希工具,集哈希自动识别、字典破解与批量生成于一体,覆盖60余种哈希算法。

Stars: 0 | Forks: 0

# 🔐 HashForge ![Python](https://img.shields.io/badge/python-3.8+-blue) ![GUI](https://img.shields.io/badge/interface-tkinter%20GUI-green) ![License](https://img.shields.io/badge/license-MIT-green) ![Status](https://img.shields.io/badge/status-active-brightgreen) ![Hashes](https://img.shields.io/badge/hash%20types-60+-orange) ![Mutations](https://img.shields.io/badge/mutation%20rules-12-red) ## ⚠️ 免责声明 本工具**仅**适用于以下用途: - 授权的渗透测试和 CTF 挑战 - 对您拥有或获得明确授权测试的系统进行密码恢复 - 安全研究与教育目的 - 网络安全培训环境 **严禁在未获得明确书面授权的情况下,将本工具用于任何系统或账户。** ## 概述 HashForge 是一个基于 tkinter 构建的 Python GUI 工具,分为两个可调整大小的面板: - **破解面板** — 字典攻击,支持实时哈希类型检测、变异规则、盐值支持、进度跟踪和停止控制 - **生成面板** — 在所有支持的算法中同时计算任意明文的哈希值,并支持显示/隐藏密码切换 所有破解操作均在后台线程中运行 —— 攻击期间 GUI 保持完全响应。 ## 功能 ### 🔨 哈希破解 - 使用任何字典文件进行字典攻击 - 输入时**实时检测哈希类型** — 在 `KeyRelease` 时自动检测 - 60 多种哈希类型模式,基于正则表达式进行识别 - 通过下拉菜单手动选择哈希类型,以区分容易混淆的哈希(例如 MD5、NTLM 与 MD4 —— 均为 32 个字符) - 盐值支持 —— 在哈希之前将其附加到候选密码的开头 - 12 条变异规则 —— 为字典中的每个条目生成密码变体 - 带有尝试计数器的进度条 - 停止按钮 —— 可在破解中途优雅地停止处理字典 - 后台线程 —— UI 永不卡顿 ### 🔑 哈希生成 - 输入任意明文密码 - 显示/隐藏密码切换 - 同时生成所有受支持算法的哈希值 - 格式清晰的输出 —— `ALGORITHM : hash_value` - 除了加密哈希外,还包括 Base64 和 Base32 编码 ## 支持的哈希类型 (60+) ### 加密哈希 | 算法 | 输出长度 | |-----------|--------------| | MD5 | 32 个字符 | | SHA1 | 40 个字符 | | SHA224 | 56 个字符 | | SHA256 | 64 个字符 | | SHA384 | 96 个字符 | | SHA512 | 128 个字符 | | SHA3-224 | 56 个字符 | | SHA3-256 | 64 个字符 | | SHA3-384 | 96 个字符 | | SHA3-512 | 128 个字符 | | BLAKE2b | 128 个字符 | | BLAKE2s | 64 个字符 | | RIPEMD160 | 40 个字符 | | WHIRLPOOL | 128 个字符 | ### Windows / AD 哈希 | 算法 | 备注 | |-----------|-------| | NTLM | UTF-16LE 编码密码的 MD4 | | NTLMv2 | 挑战-响应变体 | | LM | 旧版 LAN Manager 哈希 | | MD4 | NTLM 的基础 | ### Unix / Linux 哈希 | 算法 | 格式 | |-----------|--------| | MD5-Crypt | `$1$salt$hash` | | SHA256-Crypt | `$5$salt$hash` | | SHA512-Crypt | `$6$salt$hash` | | DESCrypt | 13 个字符的 DES | | bcrypt | `$2b$rounds$hash` | | ARGON2 | `$argon2id$...` | | SCRYPT | `$scrypt$...` | ### 数据库哈希 | 系统 | 备注 | |--------|-------| | MySQL | 40 个字符的 SHA1 变体 | | MSSQL | 40 个字符的十六进制 | | PostgreSQL | 40 个字符的十六进制 | | Oracle | 16 个字符的十六进制 | ### 网络 / 设备哈希 | 系统 | 备注 | |--------|-------| | WPA | Wi-Fi 密码哈希 | | Cisco-Type7 | Cisco IOS 混淆 | | Cisco-PMD5 | Cisco MD5 密码 | | Juniper | 64 个字符的十六进制 | | HTTP-Digest | 32 个字符的 MD5 | | NT-CHALLENGE | 16 个字符的十六进制 | ### 编码及其他 Base64, Base32, Base16, URL-Encoded, PBKDF2-HMAC-SHA256, PBKDF2-HMAC-SHA1, GOST, HAVAL-128/160/192/224/256, TIGER128/160/192, MDC2, CRC32, CRC64, ADLER32, BLAKE3, UUID, SAP-B, SAP-G, RACF, DNSSEC, SALESFORCE, MEDIAWIKI 等。 ## 变异规则 (12) | 规则 | 效果 | 输入 → 输出示例 | |------|--------|----------------------| | `None` | 无变异 | `password` → `password` | | `Lowercase` | 全部小写 | `Password` → `password` | | `Uppercase` | 全部大写 | `password` → `PASSWORD` | | `Capitalize` | 首字母大写 | `password` → `Password` | | `Reverse` | 反转字符串 | `password` → `drowssap` | | `Leet` | 黑客语替换 | `password` → `p@ssw0rd` | | `Duplicate` | 词语重复两次 | `pass` → `passpass` | | `Title Case` | 每个单词首字母大写 | `password` → `Password` | | `Swap Case` | 交换大小写 | `Password` → `pASSWORD` | | `Add Numbers` | 追加数字 0-9 | `password` → `password0`...`password9` | | `Add Special` | 追加特殊字符 `!@#$%^&*` | `password` → `password!` 等 | | `Year Append` | 追加年份 1990-2029 | `password` → `password2024` 等 | ## 安装说明 ``` git clone https://github.com/Ki1shan/HashForge.git cd HashForge python hashforge.py ``` ## 使用说明 ### 哈希破解 1. 将目标哈希值粘贴到 **Hash** 字段中 2. 在您输入时,哈希类型将被自动检测 —— 在输入框下方以蓝色显示 3. 如有必要,可通过下拉菜单进行覆盖(尤其是对于容易混淆的 32 个字符的哈希) 4. 可选择输入 **Salt** 值 5. 选择一条 **Mutation Rule**(变异规则) 6. 点击 **Browse** 选择您的字典文件 7. 点击 **Start Cracking** 8. 随时使用 **Stop** 可在中途停止字典破解 ### 哈希生成 1. 在 **Generation Panel** 中输入明文密码 2. 切换 **Show** 以显示/隐藏密码 3. 点击 **Generate Hashes** 4. 所有算法的输出将同时显示,方便您复制 ## GUI 布局 ``` ┌──────────────────────────────────────────────────────────────────┐ │ HashForge │ ├───────────────────────────────────┬──────────────────────────────┤ │ CRACKING PANEL │ GENERATION PANEL │ │ │ │ │ Hash: [____________________] │ Password: [________] [Show] │ │ Detected: SHA256, BLAKE2s │ │ │ │ [Generate Hashes] │ │ Type: [Auto Detect ▼] │ │ │ Salt: [________] │ MD5 : 5f4dcc3b5aa... │ │ Mutations: [Leet ▼] │ SHA1 : 5baa61e4c9b... │ │ │ SHA256 : 5e884898da2... │ │ Wordlist: [/path/list] [Browse] │ SHA512 : b109f3bbbc2... │ │ [████████░░] 4200 attempts │ NTLM : 8846f7eaee8... │ │ Status: Running... │ BLAKE2b: a665a45920... │ │ │ Base64 : cGFzc3dvcmQ= │ │ [Start Cracking] [Stop] │ ... │ │ │ │ │ Results: │ │ │ *** PASSWORD FOUND! *** │ │ │ Password: letmein │ │ │ Attempts: 4271 │ │ └───────────────────────────────────┴──────────────────────────────┘ ``` ## 使用场景 - **CTF 挑战** — 识别未知的哈希类型并立即破解 - **渗透测试** — 对来自 `/etc/shadow`、NTDS.dit、数据库转储的哈希执行字典攻击 - **安全意识** — 演示弱密码被破解的速度有多快 - **哈希识别** — 在 60 多种模式中自动检测未知的哈希格式 - **哈希生成** — 快速生成用于测试和验证的参考哈希 ## 作者 **Kishan N** 攻防安全工程师 | 工具开发者 构建 HashForge 是将其作为一个实用的、基于 GUI 的命令行哈希工具替代品 —— 将破解、识别和生成整合在一个简洁的双面板界面中。 ## 开源协议 MIT License — 详见 `LICENSE` 文件。 *哈希的安全性仅仅取决于其背后的密码。*
标签:bcrypt, CTF工具, DOS头擦除, GUI工具, Hacking, Hash Cracker, MD4, MD5, NTLM, Python, Security, SHA, tkinter, URL发现, VEH, 凭据导出, 凭证转储, 哈希生成, 哈希识别, 字典攻击, 安全检测, 密码破解, 数据变异, 无后门, 漏洞搜索, 瑞士军刀, 离线破解, 网络安全, 隐私保护