- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
自己动手制作MD5破解软件
自己动手制作MD5破解软件
起因
有一次在用啊D入侵网站时,管理入口、用户名和密码的MD5值都已经猜到了,只是拿到MD5网站上一查,居然要收费,如图: 我可是穷光蛋一个,没什么钱,只好放弃这个网站了。
思考
我越想越不甘心,忽然想起MD5解密的意义:
由于MD5是一种不可逆的编码算法,因此要“还原”出原始密码就只能用穷举法。
所以只能说用穷举“还原”法,没有真正意义上的解密”计算出进度。这个方案的优点是:显示准确,缺点是:速度减慢了近1/3。
2.创建一个一行的文件,储存6个标准Ascii字符,再用“该文件大小/字典大小*已测试条数”算出进度。这个方案的优点是:可以做到加速,缺点是:显示不一定准确。
最后一个问题:在循环的时候数据不会被刷新,如图:
这个问题可以用闲置循环DoEvents语句解决。
三、 实践
全部代码如下(配有注释): Dim jindu, m As Double 进度计算变量
Dim zidian_md5 As String 存放一条字典明文的MD5值
Dim zidian_str As String 存放一条字典明文
Dim yizhi_md5 As String 存放已知MD5密文
Private Sub Command1_Click
Label6.Caption 破解结果:未知 显示初始化
yizhi_md5 Text1.Text 取已知MD5密文
yizhi_md5 LCase yizhi_md5 有可能是大写的,为了统一格式及编程方便,将其一律转为小写
m 0 初始化进度计算变量
On Error GoTo err1 异常处理
Open App.Path \dictionary.txt For Input As #1 打开字典文件
_______________________________________________________________________
Do While Not EOF 1 循环至文件尾 Line Input #1, zidian_str 读入一行 m m + 1 进度计算变量加1 jindu Round FileLen App.Path \howbig.txt / LOF 1 * 100 * m, 0 取现在进度的百分比 zidian_md5 LCase Md5_String_Calc zidian_str 将Md5_String_Calc函数的返回结果转为小写并写入zidian_md5 DoEvents 闲置循环,用以刷新数据 Label5.Caption 状态: 测试 zidian_str 给用户信息反馈,使用户不焦急等待 Label4.Caption jindu % 显示进度百分比 If zidian_md5 yizhi_md5 Or LCase zidian_md5 yizhi_md5 Then 若已知密文与字典里这一行的明文MD5吻合 Label6.Caption 破解结果: zidian_str 显示字典中这一行的明文 GoTo finsh 跳出循环,并执行显示\变量初始化 End If
Loop
___________________________________________________________________
Close #1 关闭文件
___________________________________________________________________
finsh:
Close #1
Label5.Caption 状态:闲置
Label4.Caption 0%
功能:查找完成后的初始化
Exit Sub
err1:
MsgBox 程序因为意外原因终止!可能是你没有将字典文件挂载到目录下! Chr 13 Chr 10 挂载字典文件的方法:将字典文件替换本文件夹下的“dictionary.txt” 错误提示语
End Sub
四、 拓展
关于这个字典文件的生成:
1.在本文件夹下新建文本文档,命名为dictionary.txt,然后在里面住行输入可能的MD5明文。
2.通过网络上的字典生成器生成,存放在本文件夹下,命名为dictionary.txt。(注意:该文件中存放明文) /*推荐使用此方法*\
3.若密码只有5位,打开本文件夹下5位数英文字母字典生成器.exe 打开后单击便开始生成,需要耐心等待
“5位数英文字母字典生成器”源码如下:
Dim a, b, c, d, e As Integer
Dim str As String
Open App.Path \di
文档评论(0)