CrackPackage是一个用Java开发的压缩文件密码破解工具,支持多种压缩格式(ZIP、RAR、7Z、TAR、GZ、BZ2、XZ等)的密码破解。该工具采用多种破解策略,包括字典攻击和暴力破解方法。
- 支持多种压缩格式:
- ZIP文件
- RAR文件
- 7Z文件
- TAR文件
- GZ文件
- BZ2文件
- XZ文件
-
字典破解
- 常用密码字典
- 数字密码字典
- 模式密码字典
- 历史成功密码记录
-
智能暴力破解
- 可配置密码长度范围
- 支持多字符集(字母、数字、特殊字符)
- 优化的破解算法
- 失败密码缓存机制
- 批量处理密码尝试
- 进度显示和状态报告
- 交互式命令行界面
- 文件选择菜单
- 实时进度显示
- 清晰的错误提示
本工具支持3-30位密码破解,使用的字符集包括:
- 26个小写字母 (a-z)
- 26个大写字母 (A-Z)
- 10个数字 (0-9)
- 10个特殊字符 (!@#$%^&*())
总字符集大小:72个字符
密码组合数量示例:
- 3位密码:373,248 种组合
- 4位密码:26,873,856 种组合
- 5位密码:1,934,917,632 种组合
- 6位密码:139,314,069,504 种组合
- ...
- 30位密码:约 2.37 × 10^55 种组合
破解时间估算(假设每秒尝试1000个密码):
- 3位密码:约6分钟
- 4位密码:约7.5小时
- 5位密码:约22.4天
- 6位密码:约4.4年
- 更长的密码将需要更多时间
为了提高破解效率,本工具采用了以下优化策略:
- 优先使用常用密码字典
- 记录并跳过已尝试失败的密码
- 使用模式匹配减少无效尝试
- 智能排序可能性较高的密码组合
Application
: 主程序入口CrackUtil
: 密码破解核心逻辑CompressUtil
: 压缩文件处理DictionaryService
: 密码字典服务FileHashUtil
: 文件哈希和密码记录FileUtil
: 文件操作工具LogUtil
: 日志和输出管理
CrackPackage/
├── dictionary/ # 密码字典文件
├── failed_passwords/ # 失败密码记录
├── zip_files/ # 待破解的压缩文件
├── output/ # 解压输出目录
└── src/ # 源代码
-
初始化
- 创建必要的工作目录
- 加载密码字典
- 初始化缓存系统
-
文件处理
- 扫描压缩文件目录
- 用户选择目标文件
- 设置密码长度范围
-
破解过程
- 常用密码字典尝试
- 数字密码字典尝试
- 模式密码字典尝试
- 智能暴力破解
- 记录失败密码
- 更新成功密码库
-
结果处理
- 解压成功文件
- 显示破解结果
- 更新密码数据库
- Java 8+
- zip4j:ZIP文件处理
- junrar:RAR文件处理
- commons-compress:通用压缩格式支持
- commons-io:IO操作工具
- Maven:项目管理和构建
- 将需要破解的压缩文件放入
zip_files
目录 - 运行程序,选择要破解的文件
- 输入密码长度范围
- 等待破解完成
- 成功破解后文件将被解压到
output
目录
- 仅供学习和研究使用
- 不支持加密算法过于复杂的压缩文件
- 破解时间取决于密码复杂度和计算机性能
- 建议定期清理失败密码缓存以节省存储空间
- 支持更多压缩格式
- 优化破解算法效率
- 添加图形用户界面
- 支持断点续传
- 添加更多密码字典
- 实现分布式破解功能
欢迎提交 Pull Requests 来改进这个项目。在提交之前,请确保:
- 代码符合项目的编码规范
- 添加了适当的测试
- 更新了相关文档
- 提交信息清晰明了
本项目采用 MIT 许可证。详见 LICENSE 文件。
如有问题或建议,请通过以下方式联系:
- 提交 Issue
- 发送邮件至:[email protected]
感谢所有为这个项目做出贡献的开发者。