探索密码破解的新可能:siga(简单的遗传算法)
项目介绍
siga
(简单遗传算法)是一个独特的小实验,它利用种群为基础的元启发式方法来破解密码。该项目的核心在于模拟生物进化过程,寻找可能的密码组合。在对rock_you
密码列表进行五分钟的破解后,它可以找出长达21字符的复杂密码,其中包括数字序列和特殊排列。
项目技术分析
siga
采用现代C++编写,并利用了C++11和C++14的特性,因此要求一个支持这些特性的编译器。项目依赖于Boost库,用于程序选项处理和随机数生成,并需要OpenSSL的crypto库。构建项目只需要运行提供的makefile。
应用场景
- 密码破解:针对MD5和SHA1哈希的密码破解。
- 字典扩展:通过模拟过程将小字典扩大为大字典。
- 结合第三方工具:例如与hashcat配合,利用命名管道创建反馈循环,不断优化密码候选。
项目特点
- 灵活启动:可以根据需求选择随机初始化或指定起始词汇。
- 实时更新:在破解过程中,结果会持续写入
cracked.txt
文件,可以通过tail -f
命令随时查看进度。 - 交互模式:允许在运行中输入提示信息或从文件导入,提高破解效率。
- 可暂停与恢复:中断后再启动时,只需将
cracked.txt
中的密码追加到organism.txt
,即可继续之前的模拟。 - 高效策略:通过非均匀分布的父母选择策略,确保新颖基因的引入,增强了解决方案的多样性。
如何使用
siga
提供了多种示例,涵盖了从基础的MD5模式到与其他工具集成的各种用法。通过简单的命令行参数调整,可以轻松定制你的密码破解或字典扩展任务。
通过siga
,你可以深入理解遗传算法的工作原理,同时也能够实际应用到密码安全研究中。无论是教育目的还是实际的安全测试,这个项目都值得你一试。
现在就动手试试看,看看siga
能帮你找到哪些隐藏在深处的秘密吧!