Vba 为什么此代码会禁用板材保护?
下面的代码是由提供的,我使用它来取消对不知道密码的工作表的保护Vba 为什么此代码会禁用板材保护?,vba,excel,passwords,excel-2007,password-protection,Vba,Excel,Passwords,Excel 2007,Password Protection,下面的代码是由提供的,我使用它来取消对不知道密码的工作表的保护 Sub DisableSheetProtection() Dim password As String 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 n = 65 To 66 For o = 65 To 66: For p = 65 To 66 For q
Sub DisableSheetProtection()
Dim password As String
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 n = 65 To 66
For o = 65 To 66: For p = 65 To 66
For q = 65 To 66: For r = 65 To 66
For S = 65 To 66: For t = 32 To 126
ActiveSheet.Unprotect Chr(i) & _
Chr(j) & Chr(k) & Chr(l) & _
Chr(m) & Chr(n) & Chr(o) & _
Chr(p) & Chr(q) & Chr(r) & _
Chr(S) & Chr(t)
Next t: Next S: Next r: Next q
Next p: Next o: Next n: Next m
Next l: Next k: Next j: Next i
MsgBox "Sheet protection disabled."
End Sub
问题是:如何或为什么这样做?Chr(65)是A,Chr(66)是B,Chr(32)到Chr(126)是整个字母表和特殊字符
基本上,如果你想尝试所有的可能性,你需要这样做:
Sub DisableSheetProtection()
Dim password As String
On Error Resume Next
For i = 32 To 126: For j = 32 To 126
For k = 32 To 126: For l = 32 To 126
For m = 32 To 126: For n = 32 To 126
For o = 32 To 126: For p = 32 To 126
For q = 32 To 126: For r = 32 To 126
For S = 32 To 126: For t = 32 To 126
ActiveSheet.Unprotect Chr(i) & _
Chr(j) & Chr(k) & Chr(l) & _
Chr(m) & Chr(n) & Chr(o) & _
Chr(p) & Chr(q) & Chr(r) & _
Chr(S) & Chr(t)
Next t: Next S: Next r: Next q
Next p: Next o: Next n: Next m
Next l: Next k: Next j: Next i
MsgBox "Sheet protection disabled."
End Sub
但是代码工作正常,因为它是用于解除保护的,并且您无法打印出正确的密码。我假设这与VBA unprotect/protect方法有关
内部XL密码的安全性与纸巾一样有用
纸张原因是您输入的密码(即
未使用工具/保护/保护工作表或/保护工作簿)
直接保护。
相反,它们是散列的(数学上的)
转换成一个更不安全的代码。实际上,任何密码
将任何长度的
其中11个只有两个可能值中的一个。剩下的
字符最多可以有95个可能的值,导致
2^11*95=194560个潜在密码
这看起来可能很多,但现代计算机只需几秒钟即可全部试用。作为比较,仅包含26个字符的4字符密码
小写字母有456976种组合,以及
由小写、大写和小写组成的3字符密码
数字0-9将有238328个组合
再说一次,你的原始密码是什么并不重要,其中之一
194K字符串将解锁工作表或工作簿
更多阅读
内部XL密码的安全性与纸巾一样有用
纸张原因是您输入的密码(即
未使用工具/保护/保护工作表或/保护工作簿)
直接保护。
相反,它们是散列的(数学上的)
转换成一个更不安全的代码。实际上,任何密码
将任何长度的
其中11个只有两个可能值中的一个。剩下的
字符最多可以有95个可能的值,导致
2^11*95=194560个潜在密码
这看起来可能很多,但现代计算机只需几秒钟即可全部试用。作为比较,仅包含26个字符的4字符密码
小写字母有456976种组合,以及
由小写、大写和小写组成的3字符密码
数字0-9将有238328个组合
再说一次,你的原始密码是什么并不重要,其中之一
194K字符串将解锁工作表或工作簿
更多阅读。可能的重复非常感谢,学到了一些新东西。在纸巾上评论:绝对!我的电脑在3-4秒内就破解了。非常感谢,学到了一些新东西。在纸巾上评论:绝对!我的电脑在3-4秒内就破解了。