<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Excel on 开发者巴沙</title><link>http://dosoos.github.io/blog_basha/tags/excel/</link><description>Recent content in Excel on 开发者巴沙</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Thu, 21 May 2026 10:00:00 +0800</lastBuildDate><atom:link href="http://dosoos.github.io/blog_basha/tags/excel/index.xml" rel="self" type="application/rss+xml"/><item><title>Word/Excel文档密码忘记了？加密Office文件恢复方法大全（2026最新）</title><link>http://dosoos.github.io/blog_basha/p/word/excel%E6%96%87%E6%A1%A3%E5%AF%86%E7%A0%81%E5%BF%98%E8%AE%B0%E4%BA%86%E5%8A%A0%E5%AF%86office%E6%96%87%E4%BB%B6%E6%81%A2%E5%A4%8D%E6%96%B9%E6%B3%95%E5%A4%A7%E5%85%A82026%E6%9C%80%E6%96%B0/</link><pubDate>Thu, 21 May 2026 10:00:00 +0800</pubDate><guid>http://dosoos.github.io/blog_basha/p/word/excel%E6%96%87%E6%A1%A3%E5%AF%86%E7%A0%81%E5%BF%98%E8%AE%B0%E4%BA%86%E5%8A%A0%E5%AF%86office%E6%96%87%E4%BB%B6%E6%81%A2%E5%A4%8D%E6%96%B9%E6%B3%95%E5%A4%A7%E5%85%A82026%E6%9C%80%E6%96%B0/</guid><description>&lt;h2 id="前言">前言&lt;/h2>
&lt;p>Office 文档加密是职场中最常见的数据保护手段。根据微软的统计，全球有超过 3 亿用户每天使用 Office 办公套件。但当你给一份重要的 Word 合同或 Excel 报表设置了打开密码，过了一段时间却怎么也想不起来时，那种焦虑感相信很多人都体会过。&lt;/p>
&lt;p>本文将系统介绍 Office 文档密码恢复的各种方法，覆盖 Word（.doc/.docx）、Excel（.xls/.xlsx）和 PowerPoint（.pptx）三大格式。&lt;/p>
&lt;h2 id="先搞清楚office-文档的两种密码">先搞清楚：Office 文档的两种密码&lt;/h2>
&lt;p>在开始之前，需要了解 Office 文档有两种不同类型的密码，破解难度完全不同：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>密码类型&lt;/th>
&lt;th>说明&lt;/th>
&lt;th>破解难度&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>打开密码&lt;/strong>&lt;/td>
&lt;td>打开文件时需要输入&lt;/td>
&lt;td>较高（AES-128/256 加密）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>修改密码&lt;/strong>&lt;/td>
&lt;td>打开可以查看，编辑时需要&lt;/td>
&lt;td>极低（可以绕过）&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>如果是&amp;quot;修改密码&amp;quot;，恭喜你，基本不需要破解。用 WPS 或 LibreOffice 打开文件，另存为新文件，修改密码就会丢失。本文主要讨论的是更难处理的&amp;quot;打开密码&amp;quot;。&lt;/p>
&lt;h2 id="office-文档加密算法的演变">Office 文档加密算法的演变&lt;/h2>
&lt;p>了解加密算法有助于判断破解难度：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Office 97-2003 (.doc/.xls)&lt;/strong>：使用 RC4 加密（40-bit 或 56-bit），存在已知漏洞，&lt;strong>破解相对容易&lt;/strong>&lt;/li>
&lt;li>&lt;strong>Office 2007 (.docx/.xlsx)&lt;/strong>：使用 AES-128 加密，安全性大幅提升&lt;/li>
&lt;li>&lt;strong>Office 2010+ (.docx/.xlsx)&lt;/strong>：使用 AES-128 并增加了迭代次数（100,000 次 SHA-1），&lt;strong>破解速度慢很多&lt;/strong>&lt;/li>
&lt;li>&lt;strong>Office 2016+&lt;/strong>：默认使用 AES-256，是目前最强的加密标准&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>💡 &lt;strong>小贴士&lt;/strong>：如果你的文件是 .doc 或 .xls 老格式，破解速度会比 .docx 快几十倍。&lt;/p>
&lt;/blockquote>
&lt;h2 id="方法一msoffcrypto-toolpython-库推荐入门">方法一：msoffcrypto-tool（Python 库，推荐入门）&lt;/h2>
&lt;p>&lt;a class="link" href="https://github.com/nolze/msoffcrypto-tool" target="_blank" rel="noopener"
>msoffcrypto-tool&lt;/a> 是一个专门处理 Office 文件加密的 Python 库，可以检测加密类型并进行密码恢复。&lt;/p>
&lt;h3 id="安装">安装&lt;/h3>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">pip install msoffcrypto-tool
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="检测文件是否加密">检测文件是否加密&lt;/h3>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">msoffcrypto&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">with&lt;/span> &lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;encrypted.docx&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;rb&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">f&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">file&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">msoffcrypto&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">OfficeFile&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">f&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;是否加密: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">file&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">is_encrypted&lt;/span>&lt;span class="p">()&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="使用字典破解">使用字典破解&lt;/h3>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">msoffcrypto&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">crack_office&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">file_path&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">wordlist_path&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">with&lt;/span> &lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">file_path&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;rb&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">f&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">file&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">msoffcrypto&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">OfficeFile&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">f&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="ow">not&lt;/span> &lt;span class="n">file&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">is_encrypted&lt;/span>&lt;span class="p">():&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;文件未加密&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">with&lt;/span> &lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">wordlist_path&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s1">&amp;#39;r&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">encoding&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;utf-8&amp;#39;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">errors&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;ignore&amp;#39;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">wf&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">for&lt;/span> &lt;span class="n">line&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="n">wf&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">pwd&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">line&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">strip&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">try&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">file&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">load_key&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">password&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">pwd&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;✅ 密码找到: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">pwd&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># 解密文件&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">with&lt;/span> &lt;span class="nb">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;decrypted.docx&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;wb&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">out&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">file&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">decrypt&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">out&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;文件已解密保存&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">return&lt;/span> &lt;span class="n">pwd&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">except&lt;/span> &lt;span class="ne">Exception&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">continue&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;❌ 字典中未找到密码&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">crack_office&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;report.xlsx&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;rockyou.txt&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="优缺点">优缺点&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>优点&lt;/strong>：纯 Python，跨平台，代码简洁&lt;/li>
&lt;li>&lt;strong>缺点&lt;/strong>：速度一般，不支持 GPU 加速&lt;/li>
&lt;/ul>
&lt;h2 id="方法二john-the-ripper--office2john">方法二：John the Ripper + office2john&lt;/h2>
&lt;p>John the Ripper 不仅支持压缩包，也支持 Office 文档的密码破解。&lt;/p>
&lt;h3 id="使用步骤">使用步骤&lt;/h3>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 1. 提取 Office 文件的密码哈希&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">python /path/to/john/run/office2john.py encrypted.docx &amp;gt; hash.txt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 输出类似：&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># encrypted.docx:$office$*2013*100000*256*16*...（很长的哈希串）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 2. 使用字典攻击&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">john --wordlist&lt;span class="o">=&lt;/span>rockyou.txt hash.txt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 3. 查看结果&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">john --show hash.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="不同-office-版本的哈希模式">不同 Office 版本的哈希模式&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>版本&lt;/th>
&lt;th>John 模式标识&lt;/th>
&lt;th>破解速度参考&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Office 2003&lt;/td>
&lt;td>&lt;code>$oldoffice$&lt;/code>&lt;/td>
&lt;td>快（约 100K/s）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Office 2007&lt;/td>
&lt;td>&lt;code>$office$*2007*&lt;/code>&lt;/td>
&lt;td>中（约 10K/s）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Office 2010&lt;/td>
&lt;td>&lt;code>$office$*2010*&lt;/code>&lt;/td>
&lt;td>慢（约 1K/s）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Office 2013+&lt;/td>
&lt;td>&lt;code>$office$*2013*&lt;/code>&lt;/td>
&lt;td>很慢（约 500/s）&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;blockquote>
&lt;p>以上速度参考基于 GTX 1080 显卡使用 Hashcat 的测试结果。&lt;/p>
&lt;/blockquote>
&lt;h2 id="方法三hashcat-gpu-加速破解">方法三：Hashcat GPU 加速破解&lt;/h2>
&lt;p>如果你有独立显卡，Hashcat 是破解 Office 密码最快的方案。&lt;/p>
&lt;h3 id="office-文档对应的-hashcat-模式">Office 文档对应的 Hashcat 模式&lt;/h3>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Office 2003 (.doc/.xls)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">hashcat -m &lt;span class="m">9700&lt;/span> -a &lt;span class="m">0&lt;/span> hash.txt wordlist.txt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Office 2007 (.docx/.xlsx)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">hashcat -m &lt;span class="m">9400&lt;/span> -a &lt;span class="m">0&lt;/span> hash.txt wordlist.txt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Office 2010 (.docx/.xlsx)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">hashcat -m &lt;span class="m">9500&lt;/span> -a &lt;span class="m">0&lt;/span> hash.txt wordlist.txt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Office 2013+ (.docx/.xlsx)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">hashcat -m &lt;span class="m">9600&lt;/span> -a &lt;span class="m">0&lt;/span> hash.txt wordlist.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="使用掩码攻击已知密码格式">使用掩码攻击（已知密码格式）&lt;/h3>
&lt;p>如果你记得密码大概是 &amp;ldquo;公司名+年份&amp;rdquo; 的格式，可以用掩码缩小范围：&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 假设密码格式为 &amp;#34;MyCompany202X&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">hashcat -m &lt;span class="m">9600&lt;/span> -a &lt;span class="m">3&lt;/span> hash.txt &lt;span class="s2">&amp;#34;MyCompany202?d&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ?d = 数字 0-9，这样只需尝试 10 个组合&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="优缺点-1">优缺点&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>优点&lt;/strong>：GPU 并行计算，速度极快&lt;/li>
&lt;li>&lt;strong>缺点&lt;/strong>：需要独显，配置复杂，Office 2013+ 版本由于高迭代次数，即使 GPU 加速也较慢&lt;/li>
&lt;/ul>
&lt;h2 id="方法四vba-宏破解修改密码">方法四：VBA 宏破解修改密码&lt;/h2>
&lt;p>如果文件只有&amp;quot;修改密码&amp;quot;（而非打开密码），可以用 VBA 宏直接绕过：&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-vb" data-lang="vb">&lt;span class="line">&lt;span class="cl">&lt;span class="k">Sub&lt;/span> &lt;span class="nf">RemoveWriteProtection&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">Dim&lt;/span> &lt;span class="n">doc&lt;/span> &lt;span class="ow">As&lt;/span> &lt;span class="n">Document&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">Set&lt;/span> &lt;span class="n">doc&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ActiveDocument&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c">&amp;#39; 移除写保护
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c">&lt;/span> &lt;span class="k">If&lt;/span> &lt;span class="n">doc&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">ProtectionType&lt;/span> &lt;span class="o">&amp;lt;&amp;gt;&lt;/span> &lt;span class="n">wdNoProtection&lt;/span> &lt;span class="k">Then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">doc&lt;/span>&lt;span class="p">.&lt;/span>&lt;span class="n">Unprotect&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">End&lt;/span> &lt;span class="k">If&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">MsgBox&lt;/span> &lt;span class="s">&amp;#34;修改密码已移除！&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">End&lt;/span> &lt;span class="k">Sub&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;blockquote>
&lt;p>⚠️ &lt;strong>注意&lt;/strong>：此方法仅对&amp;quot;修改密码&amp;quot;有效，对&amp;quot;打开密码&amp;quot;无效。&lt;/p>
&lt;/blockquote>
&lt;h2 id="方法五libreoffice-绕过法">方法五：LibreOffice 绕过法&lt;/h2>
&lt;p>某些情况下，LibreOffice 对加密文件的处理方式和 Microsoft Office 不同：&lt;/p>
&lt;ol>
&lt;li>安装 &lt;a class="link" href="https://www.libreoffice.org/" target="_blank" rel="noopener"
>LibreOffice&lt;/a>（免费开源）&lt;/li>
&lt;li>用 LibreOffice 打开加密的 .doc/.xls 文件&lt;/li>
&lt;li>部分旧格式文件可能不弹出密码框直接打开&lt;/li>
&lt;li>另存为新文件即可&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>成功率&lt;/strong>：仅对 Office 97-2003 格式的部分加密文件有效，对 .docx/.xlsx 基本无效。&lt;/p>
&lt;h2 id="方法六在线云端恢复服务">方法六：在线云端恢复服务&lt;/h2>
&lt;p>对于不熟悉命令行操作的用户，或者本地算力不足以应对 Office 2013+ 的高强度加密时，&lt;strong>云端恢复服务&lt;/strong>是最省心的选择。&lt;/p>
&lt;p>&lt;strong>&lt;a class="link" href="https://www.catpasswd.com" target="_blank" rel="noopener"
>猫密网 (Catpasswd)&lt;/a>&lt;/strong> 支持 Word、Excel、PowerPoint 等 Office 文档的在线密码恢复：&lt;/p>
&lt;h3 id="为什么-office-文件特别适合用云端服务">为什么 Office 文件特别适合用云端服务？&lt;/h3>
&lt;p>Office 2010 之后的文档加密迭代次数非常高（10 万次 SHA-1），这意味着：&lt;/p>
&lt;ul>
&lt;li>每尝试一个密码都需要大量的计算&lt;/li>
&lt;li>普通电脑的 CPU 每秒可能只能尝试几百个密码&lt;/li>
&lt;li>一个 100 万条的字典，本地跑可能需要几个小时甚至几天&lt;/li>
&lt;/ul>
&lt;p>而云端分布式集群可以并行处理，大幅缩短等待时间。&lt;/p>
&lt;h3 id="使用流程">使用流程&lt;/h3>
&lt;ol>
&lt;li>访问 &lt;a class="link" href="https://www.catpasswd.com" target="_blank" rel="noopener"
>猫密网&lt;/a> → &lt;a class="link" href="https://www.catpasswd.com/recovery" target="_blank" rel="noopener"
>恢复页面&lt;/a>&lt;/li>
&lt;li>上传加密的 Office 文件（Word/Excel/PPT，最大 100MB）&lt;/li>
&lt;li>填写邮箱地址&lt;/li>
&lt;li>等待系统自动恢复，成功后邮件通知&lt;/li>
&lt;/ol>
&lt;p>对于机密文件，可以使用平台的&lt;strong>特征提取工具&lt;/strong>在本地提取文件特征后仅上传特征数据，源文件不会离开你的电脑，100% 保证文档安全。&lt;/p>
&lt;h3 id="费用说明">费用说明&lt;/h3>
&lt;p>猫密网提供免费恢复模式，可以先测试能否恢复。如果免费版未能成功，可以升级到专业版使用更大的字典库和更快的计算资源。&lt;/p>
&lt;h2 id="各方法对比">各方法对比&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>方法&lt;/th>
&lt;th>支持格式&lt;/th>
&lt;th>速度&lt;/th>
&lt;th>难度&lt;/th>
&lt;th>适合场景&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>msoffcrypto-tool&lt;/td>
&lt;td>全版本 Office&lt;/td>
&lt;td>中&lt;/td>
&lt;td>低&lt;/td>
&lt;td>程序员自用&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>John the Ripper&lt;/td>
&lt;td>全版本 Office&lt;/td>
&lt;td>中&lt;/td>
&lt;td>中&lt;/td>
&lt;td>技术人员&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Hashcat&lt;/td>
&lt;td>全版本 Office&lt;/td>
&lt;td>快&lt;/td>
&lt;td>高&lt;/td>
&lt;td>有独显用户&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>VBA 宏&lt;/td>
&lt;td>仅修改密码&lt;/td>
&lt;td>即时&lt;/td>
&lt;td>低&lt;/td>
&lt;td>仅修改密码场景&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>LibreOffice&lt;/td>
&lt;td>旧版 .doc/.xls&lt;/td>
&lt;td>即时&lt;/td>
&lt;td>低&lt;/td>
&lt;td>碰运气&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a class="link" href="https://www.catpasswd.com" target="_blank" rel="noopener"
>猫密网&lt;/a>&lt;/td>
&lt;td>全版本 Office&lt;/td>
&lt;td>快&lt;/td>
&lt;td>极低&lt;/td>
&lt;td>所有人&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="提高成功率的实用技巧">提高成功率的实用技巧&lt;/h2>
&lt;ol>
&lt;li>&lt;strong>先确定 Office 版本&lt;/strong>：不同版本的加密算法差异很大，.doc 格式比 .docx 容易破解得多&lt;/li>
&lt;li>&lt;strong>回忆密码规则&lt;/strong>：很多人设置 Office 密码有固定模式，比如 &amp;ldquo;公司名+年份&amp;rdquo;、&amp;ldquo;姓名+手机号后四位&amp;rdquo; 等&lt;/li>
&lt;li>&lt;strong>试试弱口令字典&lt;/strong>：大量用户使用 &amp;ldquo;123456&amp;rdquo;、&amp;ldquo;password&amp;rdquo;、&amp;ldquo;qwerty&amp;rdquo; 等弱密码，先用常见密码字典试一遍&lt;/li>
&lt;li>&lt;strong>Excel 的 .xls 特别注意&lt;/strong>：旧版 Excel 的 40-bit RC4 加密存在漏洞，可以用更高级的密码分析攻击&lt;/li>
&lt;li>&lt;strong>不要轻信&amp;quot;在线秒破&amp;quot;网站&lt;/strong>：很多小网站会收集你的文件用于非法用途，选择有信誉的平台&lt;/li>
&lt;/ol>
&lt;h2 id="常见问题">常见问题&lt;/h2>
&lt;h3 id="q-文件只是设置了只读保护而非加密怎么解除">Q: 文件只是设置了&amp;quot;只读保护&amp;quot;而非加密，怎么解除？&lt;/h3>
&lt;p>如果是 Word 的&amp;quot;限制编辑&amp;quot;或 Excel 的&amp;quot;工作表保护&amp;quot;，那不是真正的加密，可以通过以下方法解除：&lt;/p>
&lt;ul>
&lt;li>将文件后缀改为 .zip，打开后找到 &lt;code>word/settings.xml&lt;/code>，删除 &lt;code>&amp;lt;w:documentProtection&amp;gt;&lt;/code> 标签&lt;/li>
&lt;li>或用 VBA 宏解除（见方法四）&lt;/li>
&lt;/ul>
&lt;h3 id="q-wps-加密的文件和-office-加密的一样吗">Q: WPS 加密的文件和 Office 加密的一样吗？&lt;/h3>
&lt;p>WPS 兼容 Office 的加密格式，但部分 WPS 独有的加密方式使用了不同的算法。如果是 WPS 加密的文件，建议先用 WPS 另存为 .docx 格式再处理。&lt;/p>
&lt;h3 id="q-excel-文件有打开密码和工作簿保护两层怎么分别处理">Q: Excel 文件有&amp;quot;打开密码&amp;quot;和&amp;quot;工作簿保护&amp;quot;两层，怎么分别处理？&lt;/h3>
&lt;p>&amp;ldquo;打开密码&amp;quot;是文件级加密，需要本文介绍的方法破解。&amp;ldquo;工作簿保护&amp;quot;只是限制了结构修改（不能增删工作表），可以用 VBA 直接绕过。&lt;/p>
&lt;h3 id="q-恢复出的密码能直接用在-wps-上吗">Q: 恢复出的密码能直接用在 WPS 上吗？&lt;/h3>
&lt;p>可以。WPS 完全兼容 Office 的加密格式，找到的密码在 WPS 和 Microsoft Office 上通用。&lt;/p>
&lt;h2 id="总结">总结&lt;/h2>
&lt;p>Office 文档密码恢复的核心难点在于新版本 Office（2010+）的高迭代次数加密。对于旧版 .doc/.xls 文件，大部分方法都能较快恢复；对于新版 .docx/.xlsx 文件，建议使用 GPU 加速的 Hashcat 或借助 &lt;a class="link" href="https://www.catpasswd.com" target="_blank" rel="noopener"
>猫密网&lt;/a> 这样的云端服务。&lt;/p>
&lt;p>最重要的是，在加密文件之前，建议使用密码管理器妥善保存密码，避免日后给自己制造麻烦。&lt;/p></description></item></channel></rss>