利用宏探测破坏Excel保护密码

Excel单元格受到密码保护时候,我们的编辑操作将无法执行,会提示在”撤消工作表保护“中输入密码后进一步操作。
那么今天就学习下如何利用宏来探测破坏Excel的保护密码。

这里大家会注意到,为什么是”破坏“而不是”破解”呢?因为利用此方法探测到的密码实际上与原正确密码是有很大差异的,但是探测出来的密码是可用的。
这里留下一道课外题:你是否能从宏代码中解释出现此异常原因?

解决办法:

  • Excel单元格受到保护,无法编辑
  • 解除保护,需要输入密码
  • 在Excel开发新建宏并输入代码
  • Sub 密码探测()
      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 "可用密码为:" & Chr(i) & Chr(j) & _
      Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
      Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
      ActiveWorkbook.Sheets(1).Select
      Range("a1").FormulaR1C1 = 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

  • 执行宏后稍等数秒或数分钟即可探测出可用密码
  • 对Excel 2019有效,并且向下兼容,理论上支持宏的版本都可以使用此方法。你学会了吗?

    订阅
    提醒
    0 评论
    内嵌讨论
    查看全部讨论