Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 为什么此代码会禁用板材保护?_Vba_Excel_Passwords_Excel 2007_Password Protection - Fatal编程技术网

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秒内就破解了。