<output id="os3gq"><ruby id="os3gq"></ruby></output>

    1. <mark id="os3gq"></mark>
    2. 5個免費課程
      網站公告
      ·Access快速平臺QQ群號:156702533    ·Access快速開發平臺下載地址及教程    ·歡迎添加微信交流賬號:AccessoftChu    ·如何快速搜索本站文章|示例|資料    
      您的位置: 首頁 > 技術文章 > Access數據庫-宏

      excel保護密碼破解

      時 間:2012-04-12 11:02:52
      作 者:煮茶論道   ID:12904  城市:常州
      摘 要:excel保護密碼破解
      正 文:

      在日常工作中,您是否遇到過這樣的情況:您用Excel編制的報表、表格、程序等,在單元格中設置了公式、函數等,為了防止其他人修改您的設置或者防止您自己無意中修改,您可能會使用Excel的工作表保護功能,但時間久了保護密碼容易忘記,這該怎么辦?有時您從網上下載的Excel格式的小程序,您想修改,但是作者加了工作表保護密碼,怎么辦?您只要按照以下步驟操作,Excel工作表保護密碼瞬間即破!
          1、打開您需要破解保護密碼的Excel文件;
          2、依次點擊菜單欄上的工具---宏----錄制新宏,輸入宏名字如:aa;
          3、停止錄制(這樣得到一個空宏);
          4、依次點擊菜單欄上的工具---宏----宏,選aa,點編輯按鈕;
          5、刪除窗口中的所有字符(只有幾個),替換為下面的內容;


      Option Explicit

      Public Sub AllInternalPasswords()
      ' Breaks worksheet and workbook structure passwords. Bob McCormick
      ' probably originator of base code algorithm modified for coverage
      ' of workbook structure / windows passwords and for multiple passwords
      '
      ' Norman Harker and JE McGimpsey 27-Dec-2002 (Version 1.1)
      ' Modified 2003-Apr-04 by JEM: All msgs to constants, and
      ' eliminate one Exit Sub (Version 1.1.1)
      ' Reveals hashed passwords NOT original passwords
      Const DBLSPACE As String = vbNewLine & vbNewLine
      Const AUTHORS As String = DBLSPACE & vbNewLine & _
      "Adapted from Bob McCormick base code by" & _
      "Norman Harker and JE McGimpsey"
      Const HEADER As String = "AllInternalPasswords User Message"
      Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04"
      Const REPBACK As String = DBLSPACE & "Please report failure " & _
      "to the microsoft.public.excel.programming newsgroup."
      Const ALLCLEAR As String = DBLSPACE & "The workbook should " & _
      "now be free of all password protection, so make sure you:" & _
      DBLSPACE & "SAVE IT NOW!" & DBLSPACE & "and also" & _
      DBLSPACE & "BACKUP!, BACKUP!!, BACKUP!!!" & _
      DBLSPACE & "Also, remember that the password was " & _
      "put there for a reason. Don't stuff up crucial formulas " & _
      "or data." & DBLSPACE & "Access and use of some data " & _
      "may be an offense. If in doubt, don't."
      Const MSGNOPWORDS1 As String = "There were no passwords on " & _
      "sheets, or workbook structure or windows." & AUTHORS & VERSION
      Const MSGNOPWORDS2 As String = "There was no protection to " & _
      "workbook structure or windows." & DBLSPACE & _
      "Proceeding to unprotect sheets." & AUTHORS & VERSION
      Const MSGTAKETIME As String = "After pressing OK button this " & _
      "will take some time." & DBLSPACE & "Amount of time " & _
      "depends on how many different passwords, the " & _
      "passwords, and your computer's specification." & DBLSPACE & _
      "Just be patient! Make me a coffee!" & AUTHORS & VERSION
      Const MSGPWORDFOUND1 As String = "You had a Worksheet " & _
      "Structure or Windows Password set." & DBLSPACE & _
      "The password found was: " & DBLSPACE & "$$" & DBLSPACE & _
      "Note it down for potential future use in other workbooks by " & _
      "the same person who set this password." & DBLSPACE & _
      "Now to check and clear other passwords." & AUTHORS & VERSION
      Const MSGPWORDFOUND2 As String = "You had a Worksheet " & _
      "password set." & DBLSPACE & "The password found was: " & _
      DBLSPACE & "$$" & DBLSPACE & "Note it down for potential " & _
      "future use in other workbooks by same person who " & _
      "set this password." & DBLSPACE & "Now to check and clear " & _
      "other passwords." & AUTHORS & VERSION
      Const MSGONLYONE As String = "Only structure / windows " & _
      "protected with the password that was just found." & _
      ALLCLEAR & AUTHORS & VERSION & REPBACK
      Dim w1 As Worksheet, w2 As Worksheet
      Dim i As Integer, j As Integer, k As Integer, l As Integer
      Dim m As Integer, n As Integer, i1 As Integer, i2 As Integer
      Dim i3 As Integer, i4 As Integer, i5 As Integer, i6 As Integer
      Dim PWord1 As String
      Dim ShTag As Boolean, WinTag As Boolean

      Application.ScreenUpdating = False
      With ActiveWorkbook
      WinTag = .ProtectStructure or .ProtectWindows
      End With
      ShTag = False
      For Each w1 In Worksheets
      ShTag = ShTag or w1.ProtectContents
      Next w1
      If Not ShTag And Not WinTag Then
      MsgBox MSGNOPWORDS1, vbInformation, HEADER
      Exit Sub
      End If
      MsgBox MSGTAKETIME, vbInformation, HEADER
      If Not WinTag Then
      MsgBox MSGNOPWORDS2, vbInformation, HEADER
      Else
      On Error Resume Next
      Do 'dummy do loop
      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
      With ActiveWorkbook
      .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 .ProtectStructure = False And _
      .ProtectWindows = False Then
      PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _
      Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
      Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
      MsgBox Application.Substitute(MSGPWORDFOUND1, _
      "$$", PWord1), vbInformation, HEADER
      Exit Do 'Bypass all for...nexts
      End If
      End With
      Next: Next: Next: Next: Next: Next
      Next: Next: Next: Next: Next: Next
      Loop Until True
      On Error GoTo 0
      End If
      If WinTag And Not ShTag Then
      MsgBox MSGONLYONE, vbInformation, HEADER
      Exit Sub
      End If
      On Error Resume Next
      For Each w1 In Worksheets
      'Attempt clearance with PWord1
      w1.Unprotect PWord1
      Next w1
      On Error GoTo 0
      ShTag = False
      For Each w1 In Worksheets
      'Checks for all clear ShTag triggered to 1 if not.
      ShTag = ShTag or w1.ProtectContents
      Next w1
      If ShTag Then
      For Each w1 In Worksheets
      With w1
      If .ProtectContents Then
      On Error Resume Next
      Do 'Dummy do loop
      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
      .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 Not .ProtectContents Then
      PWord1 = Chr(i) & Chr(j) & Chr(k) & Chr(l) & _
      Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
      Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
      MsgBox Application.Substitute(MSGPWORDFOUND2, _
      "$$", PWord1), vbInformation, HEADER
      'leverage finding Pword by trying on other sheets
      For Each w2 In Worksheets
      w2.Unprotect PWord1
      Next w2
      Exit Do 'Bypass all for...nexts
      End If
      Next: Next: Next: Next: Next: Next
      Next: Next: Next: Next: Next: Next
      Loop Until True
      On Error GoTo 0
      End If
      End With
      Next w1
      End If
      MsgBox ALLCLEAR & AUTHORS & VERSION & REPBACK, vbInformation, HEADER
      End Sub

          6、關閉編輯窗口;
          7、依次點擊菜單欄上的工具---宏-----宏,選AllInternalPasswords,運行,確定兩次;
          等一會,再點擊確定。哈哈哈,沒有密碼了吧!!

       



      Access軟件網官方交流QQ群 (群號:198348076)       access源碼網店

      最新評論 查看更多評論(3)

      2015/8/12 13:57:45xhs
      高手!

      2012/4/12 11:20:37殷小寶
      破解這么復雜,高手.佩服.收下了.

      2012/4/12 11:17:54漏蛧尐魚℡
      不錯,但是我一般都是用工具破解的

      發表評論您的評論將提升作者分享的動力!快來評論一下吧!

      用戶名:
      密 碼:
      內 容:
       

      常見問答

      技術分類

      相關資源

      關于我們 | 服務條款 | 在線投稿 | 友情鏈接 | 網站統計 | 網站幫助