zoukankan      html  css  js  c++  java
  • 破解EXCEL2007的密码

    破解EXCEL2007的密码

    xshzhao (斑竹)顶楼举报

    我有一个EXCEL2007文件(后缀是XLSX),由于设置了打开密码.现在密码搞忘了,这个文件对我很重要. 我试过了Office Password Remover这个软件破解,没有成功.这个软件只对EXCEL2003有效.谁知道,请帮个忙!!

    8月30日wwwpc119 最后编辑 

    wwwpc119 (组长)2楼举报

    Excel 2007密码保护的解除方法及原理


    Excel弹出“您试图更改的单元格或图表受保护,因而是只读的。若要修改受保护单元格或图表,请先使用‘撤消工作表保护’命令(在‘审阅’选项卡的‘更改’组中)来取消保护。可能会提示您输入密码。”窗口。

    出现这种情况,应该怎么解决呢?经过研究,找到了两种破解Excel工作表保护码的方法。

    一、VBA宏代码破解法:

    第一步:打开该文件,先解除默认的“宏禁用”状态,方法是点击工具栏下的“选项”状态按钮,打开“Microsoft Office安全选项”窗口,选择其中的“启用此内容”,“确定”退出;

    再切换到“视图”选项卡,点击“宏”→“录制宏”,出现“录制新宏”窗口,在“宏名”定义一个名称为:PasswordBreaker(图3),点击“确定”退出;

    第二步:再点击“宏”→“查看宏”,选择“宏名”下的“PasswordBreaker”并点击“编辑”,打开“Microsoft Visual Basic”编辑器,用如下内容替换右侧窗口中的所有代码:

    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)
    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

    第三步:再点击“宏”→“查看宏”,选择“宏名”下的“PasswordBreaker”并点击“执行”,密码就现形了。

    第四步:切换“审阅”选项卡,点击“撤消工作表保护”,然后输入密码即可解除锁定。

    二、软件破解法

    有许多专门为破解Excel各种密码而制作的软件,Excel Key与Advanced Office Password Recovery就是其中的佼佼者。它们的使用方法简单且破解速度极快。

    1. Excel Key

    下载(下载地址:http://www.mydown.com/soft/183/183131.html)安装完后运行软件,点击工具栏“Recovery”按钮,找到要破解的文件,软件马上就可以解出密码了。

    2. Advanced Office Password Recovery

    下载(下载地址:http://www.mydown.com/soft/utilitie/security/268/410768.shtml)安装完后运行软件,点击工具栏“Open File”按钮,打开要破解的Excel文件,马上就可以看到解出的密码了。

    可以看出,用以上方法读出的密码完全不同,但它们确实均可以解除该工作表的密码保护,这实在是个有趣的问题。

    在网上查找了许久,终于找到比较圆满的解释答案:

    当Excel工作表采用密码保护时,就会生成一个16位(双字节)长hash值。当输入密码进行验证时,真正进行比较的就是这个hash值。事实上,有很多不同的密码都可以生成同样的hash值。

    大家可以试试:

    当你用“test”(不含双引号)作为Excel工作表保护密码,你同样可以用“zzyw”(同样不含双引号)这个密码进行解锁。怎么样,神奇吧?
     

    wwwpc119 (组长)3楼举报

    给你找了个文章 参考一下 看看

     

    xshzhao (斑竹)4楼举报

    谢谢组长提供这些信息,我的情况是:打开文件时就要输入密码(是整个文件被密码保护),不是工作表被密码保护,见下图
    IPB Image
    不过,我可以试试你讲的第二种方案(软件破解法)

    引用
    有许多专门为破解Excel各种密码而制作的软件,Excel Key与Advanced Office Password Recovery就是其中的佼佼者。它们的使用方法简单且破解速度极快。

     

    xshzhao (斑竹)5楼举报

    我试了Excel Key 和Advanced Office Password Recovery这个,都不成功,它们不支持OFFICE EXCEL2007.
    试Excel Key这个的情况IPB Image
    当我安装了Advanced Office Password Recovery这个之后,有一个说明(如下)Advanced Office Password Recovery 4.0 专业版==================
    针对 MS Office 系列的密码破解工具 AOPR 可破解 95~03 版的各类 Office 文档,本软件分精简、标准、专业三个版本,而本专业版便是其中支持的格式最全、开放的特性最多的一款。
    =======================================
    由于说明中讲可破解95~03 版的各类 Office 文档(没有2007),我想试一下是否能破解2007,于是我建了一个新EXCEL2007文件,设了一个简单的a密码(若这个能破解,那么我的那个重要文件就有救了),但这个最简单的a都解不成功,看来也不支持2007.
    这个2007的密码真难解,我问过了很多朋友,而且在网上找了很多相关信息,也拿它没办法。






    =================================================================================


    excel2007 密码破解教程 
    Microsoft发布Excel 2007时,引入了新的文件类型,即xlsx、xlsm、xltx,等等,称之为Open XML。因为这种新文件类型实质上是包含XML文件的包。如果将一个xlsx文件的扩展名修改为zip,那么能够看到组成该Excel文件的所有xml文档。 
    新的Open XML文件类型带来了许多好处。其主要的好处之一是可以通过操作组成文件的XML文档来简单地修改Excel 2007文件的内容和属性。 
    是的,当处理Open XML文件时,发现可以通过简单地编辑Excel文件里的xml文件,从而简单地移除工作表保护。 
    假设有一个工作簿,其工作表Sheet1被保护。现在,我希望取消该工作表的保护,但是不知道密码。怎么办呢?幸好这是Excel 2007,我们可以利用XML来移除工作表保护。 
     
    步骤1 首先备份工作簿,以防万一。 步骤2 修改工作簿文件的扩展名为zip。 
     
    步骤3 解压该压缩文件。 
    步骤4 找到代表目标工作表的XML文件(在xlworksheets文件夹中)。 
                                                                                                      




    Excel 2010信息安全控制设置工作簿的打...隐藏工作表和保...






     
    步骤5 使用任一XML编辑器打开代表目标工作表的xml文档。 步骤6 找到“sheetProtection”标签并移除该标签所在的行。 
     
    步骤7 保存已编辑的XML文档,用其取代原Zip文件中相应的XML文档。 步骤8 将文件的扩展名修改回xlsx。 
     
    至此,工作表保护已解除。 注意: 
    在XML文件中看到的任何密码都不是真正的密码。 这种方法不能取消对整个工作簿的保护。










    =====================================================================

    破解EXCEL密码(测试EXCEL2003和EXCEL2007通过)

    如果你有份EXCEL文档,自己或者别人设置了密码保护,你却忘记了活不知道,那可麻烦了,呵呵。不过还是有补救的方法,这个方法是去除密码,但不是找出密码,请注意。废话少说,直接说破解方法。(PS:如果整个文件都被保护了,我这个方法就不管了,你就别浪费时间,抓紧找别的方法吧,哈哈)

    一:EXCEL2003步骤

    1、打开文件(废话);
    2、【工具】→【宏】→【录制新宏】→输入名字,如:"pp";
    3、停止录制(这样得到一个空宏);
    4、【工具】→【宏】→【宏】,选"pp",点【编辑】;
    5、删除窗口中的所有字符(只有几个),替换为下面的内容:


    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”,运行,确定两次,等一会儿(大概一分钟、两分钟的样子),再【确定】,然后就没有密码了!!

    二、EXCEL2007 步骤

    1、还是先打开文件;

    2、选择【视图】选项卡,点击【宏】,或者直接用快捷键【ALT+F8】打开;

    3、在“宏名”下输入名称,如:“pp”,点击【创建】按钮;

    4、删除所有字符,大概是这个样子的字符:

    Sub aa()

    End Sub
    然后,复制一下代码(和上面的代码是一样的),代码略。
    5、关闭窗口,点击绿色的运行按钮,选择宏“AllInternalPasswords”,点击【运行】;

    6、弹出窗口,点击【确定】,然后又弹出个按钮,不管继续【确定】,等上一会儿,密码就么有了。

    三、打完收工



  • 相关阅读:
    复利结对项目 增添
    结对编程-对队友的评价
    复利结对项目
    阅读《构造之法》第4章有感
    单元测试
    实验一 命令解释程序cmd的编写
    阅读《构造之法》1、2、3章有感
    复利计算
    实验总结
    汉堡包评价
  • 原文地址:https://www.cnblogs.com/techstone/p/3321281.html
Copyright © 2011-2022 走看看