excel - VBA代码破解两个字符的密码
问题描述
试图破解两个字符的密码
Sub BruteForce()
Dim pw As String
Dim i As Integer
Do
ThisWorkbook.Sheets("Login").Cells(4, 7).ClearContents
For i = 1 To 2
If i Mod 2 = 0 Then
pw = pw & Int((9 - 0 + 1) * Rnd + 0)
Else
pw = pw & Chr(Int((90 - 65 + 1) * Rnd + 65))
End If
Next i
ThisWorkbook.Sheets("Login").Cells(4, 7).Value = pw
If ThisWorkbook.Sheets("Login").Cells(5, 7).Value <> "NO" Then
Exit Do
End If
Loop
End Sub
代码陷入无限循环,我不知道如何修复
解决方案
使用嵌套循环不太复杂:
Sub BruteForce()
Dim i As long, n As Long
With ThisWorkbook.Sheets("Login")
For i = 0 To 9
For n = 1 to 26
.Cells(4, 7).Value = Chr(64+n) & i
DoEvents
If .Cells(5, 7).Value <> "NO" Then Exit Sub
Next n
Next i
End With
End Sub
推荐阅读
- r - 将年月日期列连接到 R data.table 中的一列
- python - tkinter 启动画面代码不显示图像
- java - 垂直网格视图中的重复卡片
- r - 在R中离散化堆栈中的所有栅格
- haskell - 如何将 [TExp a] 转换为 TExp [a],或者以其他方式以编程方式将细化TH 应用于多个值?
- python - 修改 JSON 值
- python - 如何真正理解 sklearn 中的 kfold 交叉验证
- android - 从 TravisCI 将 Android aar 库上传到 bintray
- javascript - 更改下拉图标和 javascript 转换
- c++ - 为什么将 12345 作为 12345 的一个值而不是 1、2、3、4 和 5 五个值读入整数数组?