破解密码的循环问题

zhuode_001 2006-11-09 04:22:43
从网上下载了一个破解8位以下纯数字秘密word文档的小程序,感觉不错,但它用了3层循环,试着破解一个密码为555的文档需要了半分钟,如果是四位数密码则需要5、6分钟,怎么样改进一下,使它快些啊???
代码如下:
Private Sub cmdopendoc_Click()
Dim wd As New Word.Application
Dim strpath As String
Dim pass As String
Dim J, K, Pass_long As Integer
Dim Max_num, Min_num, I As Long
strpath = File1.Path & "\" & File1.FileName
On Error Resume Next
'程序开始
Pass_long = Val(Text2.Text)
Max_num = 10 ^ Val(Text2.Text)
Min_num = 10 ^ (Val(Text2.Text) - 1)
Flag = 0
For K = 0 To Pass_long - 1
Max_num = 10 ^ (Pass_long - K)
Min_num = 10 ^ (Pass_long - (K + 1))
For J = 0 To Pass_long - 1
cmdopendoc.MousePointer = 11
For I = IIf(Pass_long - K = 1, 0, Min_num) + J To Max_num Step Pass_long
Text1.Text = pass
Text1.Refresh
pass = String(K, "0") & I
Flag = wd.Documents.Open(FileName:=strpath, passworddocument:=pass)
'如果解密成功,打开文档,显示密码,退出过程
If Flag <> 0 Then
Label2.Caption = "文档密码"
Label2.Refresh
Text1.Text = pass
wd.Visible = True
cmdopendoc.MousePointer = 0
Exit Sub
End If
Next I
Next J
Next K
MsgBox "密码位数不对,请重新输入"
End Sub
...全文
204 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2006-11-11
  • 打赏
  • 举报
回复
用api
zhuode_001 2006-11-11
  • 打赏
  • 举报
回复
我认为快的方法还是有的 ,因为我听说过“破解6位数字密码瞬间搞定”的说法,
苦于能力有限啊
zhuode_001 2006-11-10
  • 打赏
  • 举报
回复
我说的只是纯数字的破解
这个循环怎么样才能快些啊 ??
cangwu_lee 2006-11-10
  • 打赏
  • 举报
回复
另外想办法,就会快。

这个办法只能这么快

fxy_2002 2006-11-10
  • 打赏
  • 举报
回复
这个循环并不慢,慢的是 wd.Documents.Open... 这句。
你试着连续1000次打开一个word文件试试,没有三层循环一样慢。
fxy_2002 2006-11-09
  • 打赏
  • 举报
回复
穷举?
这代码没什么实用性。
如果用户用字母密码,只一位它也搞不定。
使用说明: 1.使用步骤:首先设定按键,设定完后读取字典文件,打开要破解的软件把光标对着注册码输入框中按F12键开始破解,按F11键停止。若不设字典,也可以启用数字组合器,两者必用其一。字典就是按人的习惯设置的一组可能的密码,写成一个txt文件,一行一个,用好的字典猜测破解,可以大大缩短破解时间,当然也可能都没猜对,那就要使用暴力破解了,即用穷举法。 2.如何设定按键:首先要明白为何要设定按键,按键设定就是要设定软件在密码框输入完密码后所要按的键。通常要如下设置:Enter,Enter,Enter,空.等待时间为0。因为输入完密码后通常要按Enter(不是绝对的噢)才能确定输入的密码密码错误后有时会弹出一个提示框这时要按一次Enter才可以继续,如果想再回到密码输入框中输入密码就要再按一次Enter。只要设定按这3个键就可以做成一个循环输入直到密码正确为止。以上的设定只是一些通常的设定,还有一些需要按方向键TAB键或组合键才可以达到要求的,那就要按具体情况具体分析灵活变通!简单说,就是设定在密码框输入一次密码到下一次在其中输入密码之间的所有按键。按键不是设的越多越好,没有了就留“空”,必须保证设置准确。 3.进度的保存与读取:可以在每次输入停止后,进行保存或读取进度。每个进度都保存在注册表中。字典进度和两个组合器的进度都是分开的不会互相干扰。如果要读取进度就要先读取相应的字典或启用相应的组合器,否则将会出现问题。进度保存,为了不一直开着机器去破解,可以到下次开机继续上次的破解过程。 4.数字组合器的启用:只要设定好范围打开相应的选项然后按启用就可以了,只能是数字。最后点击启用。 5.字典组合器的设定技巧:在用户自定义中每位密码都可以设定范围。步骤是先设定范围,有大写、小写、数字之分,然后再选中那位的复选框。如此类推其它的也这样做,对每一位密码做范围限定。这是缩短破解时间的有效方法。注:在组合器中字母位数越多范围越大,需时越长。最后点击启用。

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧