gpt4 book ai didi

excel - 有人能解释一下这个 Excel 2010 或更早版本的密码保护器是如何工作的吗

转载 作者:行者123 更新时间:2023-12-04 21:30:35 25 4
gpt4 key购买 nike

有人可以解释一下这是如何工作的,为什么我需要 65 到 66 的计数,哪里有 12 个计数以及所有 Chr(变量)给出了什么?

我不是想编写这个代码,但是当有人问他们忘记密码后如何解锁他们的工作表时,我确实在网上找到了这个。我想了解实际发生的情况

Sub PasswordBreaker()

Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Integer
Dim i1 As Integer, i2 As Integer, i3 As Integer
Dim i4 As Integer, i5 As Integer, i6 As Integer
On Error Resume Next
For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
If ActiveSheet.ProtectContents = False Then
MsgBox "One usable password is " & Chr(i) & Chr(j) & _
Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
Exit Sub
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub

谢谢你

最佳答案

这将生成多个 12 个字符长的密码,例如 AAAAAAAAAAAAAAAAAAAAABA依此类推,并尝试他们是否可以解除对工作表的保护。

Chr function Chr(65)为您提供 ASCII 码为 65 的字符,即 A .所以实际上循环产生了A的所有排列。和 B对于前 11 个字符,最后一个循环有更多来自 ASCII 32 to 126 的字符用于密码的 12ᵗʰ 字符。

因为旧版 Excel 使用不安全的散列函数来存储密码,所以有多个密码可以产生相同的散列。所以这只是一种找到有效密码的廉价方法。

更多详细信息请参阅:Understanding Excel's Password Security Methodology

关于excel - 有人能解释一下这个 Excel 2010 或更早版本的密码保护器是如何工作的吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53410859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com