<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>文档安全 on 开发者巴沙</title><link>http://dosoos.github.io/blog_basha/tags/%E6%96%87%E6%A1%A3%E5%AE%89%E5%85%A8/</link><description>Recent content in 文档安全 on 开发者巴沙</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Wed, 20 May 2026 10:00:00 +0800</lastBuildDate><atom:link href="http://dosoos.github.io/blog_basha/tags/%E6%96%87%E6%A1%A3%E5%AE%89%E5%85%A8/index.xml" rel="self" type="application/rss+xml"/><item><title>PDF文件加密了怎么解除？PDF密码破解完整指南（2026最新）</title><link>http://dosoos.github.io/blog_basha/p/pdf%E6%96%87%E4%BB%B6%E5%8A%A0%E5%AF%86%E4%BA%86%E6%80%8E%E4%B9%88%E8%A7%A3%E9%99%A4pdf%E5%AF%86%E7%A0%81%E7%A0%B4%E8%A7%A3%E5%AE%8C%E6%95%B4%E6%8C%87%E5%8D%972026%E6%9C%80%E6%96%B0/</link><pubDate>Wed, 20 May 2026 10:00:00 +0800</pubDate><guid>http://dosoos.github.io/blog_basha/p/pdf%E6%96%87%E4%BB%B6%E5%8A%A0%E5%AF%86%E4%BA%86%E6%80%8E%E4%B9%88%E8%A7%A3%E9%99%A4pdf%E5%AF%86%E7%A0%81%E7%A0%B4%E8%A7%A3%E5%AE%8C%E6%95%B4%E6%8C%87%E5%8D%972026%E6%9C%80%E6%96%B0/</guid><description>&lt;h2 id="前言">前言&lt;/h2>
&lt;p>PDF 是工作中最常用的文档格式之一。从电子合同到学术论文，从银行账单到政府公文，PDF 无处不在。而当一份重要的 PDF 文件被加密，而你恰好忘记了密码，那种无力感相信很多人都经历过。&lt;/p>
&lt;p>好消息是，PDF 的加密体系虽然有多个版本，但其中不少存在已知的弱点。这篇文章将带你全面了解 PDF 加密机制，并给出实用的密码恢复方案。&lt;/p>
&lt;h2 id="pdf-加密基础知识">PDF 加密基础知识&lt;/h2>
&lt;h3 id="两种密码打开密码-vs-权限密码">两种密码：打开密码 vs 权限密码&lt;/h3>
&lt;p>PDF 的加密设计中包含两种不同层级的密码：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&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>&lt;strong>打开密码&lt;/strong> (User Password)&lt;/td>
&lt;td>User Password&lt;/td>
&lt;td>必须输入才能查看内容&lt;/td>
&lt;td>高（文件内容被加密）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>权限密码&lt;/strong> (Owner Password)&lt;/td>
&lt;td>Owner Password&lt;/td>
&lt;td>限制打印、复制、编辑等操作&lt;/td>
&lt;td>&lt;strong>低（可以绕过）&lt;/strong>&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;strong>关键区别&lt;/strong>：权限密码不加密文件内容本身，只是通过 PDF 阅读器来限制功能。这意味着即使不知道权限密码，也有方法绕过限制。而打开密码则对文件内容进行了真正的加密。&lt;/p>
&lt;h3 id="pdf-加密版本演变">PDF 加密版本演变&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&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>PDF 1.1-1.3&lt;/td>
&lt;td>RC4 40-bit&lt;/td>
&lt;td>❌ 极弱&lt;/td>
&lt;td>几秒可破解&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>PDF 1.4&lt;/td>
&lt;td>RC4 128-bit&lt;/td>
&lt;td>⚠️ 较弱&lt;/td>
&lt;td>存在已知漏洞&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>PDF 1.5-1.6&lt;/td>
&lt;td>RC4 128-bit (AES)&lt;/td>
&lt;td>⚠️ 中等&lt;/td>
&lt;td>改进但仍有弱点&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>PDF 1.7 Extension 3&lt;/td>
&lt;td>AES-128&lt;/td>
&lt;td>✅ 较强&lt;/td>
&lt;td>Adobe Acrobat 9+&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>PDF 2.0&lt;/td>
&lt;td>AES-256&lt;/td>
&lt;td>✅✅ 很强&lt;/td>
&lt;td>ISO 32000-2 标准&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="一权限密码owner-password的绕过方法">一、权限密码（Owner Password）的绕过方法&lt;/h2>
&lt;p>权限密码是最容易处理的，有以下几种方案：&lt;/p>
&lt;h3 id="方法-1使用-qpdf-一键移除推荐">方法 1：使用 qpdf 一键移除（推荐）&lt;/h3>
&lt;p>&lt;a class="link" href="https://github.com/qpdf/qpdf" target="_blank" rel="noopener"
>qpdf&lt;/a> 是一个免费的 PDF 转换工具，可以直接移除权限密码：&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;span class="lnt">12
&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"># 安装&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Ubuntu/Debian&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo apt install qpdf
&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"># macOS&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">brew install qpdf
&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"># Windows - 下载安装包&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># https://github.com/qpdf/qpdf/releases&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">qpdf --decrypt input.pdf output.pdf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>执行后，&lt;code>output.pdf&lt;/code> 将不再有任何编辑、打印、复制限制。&lt;/p>
&lt;h3 id="方法-2python-pikepdf-库">方法 2：Python pikepdf 库&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;/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">pikepdf&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"># 打开有权限密码的 PDF（不需要密码）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">pdf&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pikepdf&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;restricted.pdf&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="n">pdf&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">save&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;unrestricted.pdf&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="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;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>安装 pikepdf：&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;/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 pikepdf
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="方法-3在线工具">方法 3：在线工具&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>ilovepdf.com&lt;/strong> - 上传 PDF 即可解锁&lt;/li>
&lt;li>&lt;strong>smallpdf.com&lt;/strong> - 免费额度有限&lt;/li>
&lt;li>&lt;strong>pdf2go.com&lt;/strong> - 支持批量处理&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>⚠️ &lt;strong>隐私提醒&lt;/strong>：在线工具会上传你的文件到第三方服务器，敏感文件不建议使用。如需在线处理，建议选择支持文件销毁的正规平台。&lt;/p>
&lt;/blockquote>
&lt;h3 id="方法-4chrome-浏览器打印法">方法 4：Chrome 浏览器打印法&lt;/h3>
&lt;ol>
&lt;li>用 Chrome 浏览器打开受权限密码保护的 PDF&lt;/li>
&lt;li>Chrome 可能直接忽略权限限制显示内容&lt;/li>
&lt;li>按 Ctrl+P → 选择&amp;quot;另存为 PDF&amp;quot;&lt;/li>
&lt;li>新的 PDF 文件将不带任何限制&lt;/li>
&lt;/ol>
&lt;h2 id="二打开密码user-password的破解方法">二、打开密码（User Password）的破解方法&lt;/h2>
&lt;p>打开密码对文件内容进行了真正的加密，需要使用密码恢复手段。&lt;/p>
&lt;h3 id="方法-1pdfcpu--john-the-ripper">方法 1：pdfcpu + John the Ripper&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;/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. 从 PDF 中提取密码哈希&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 使用 pdf2john 工具（John the Ripper 附带）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">python /path/to/john/run/pdf2john.py encrypted.pdf &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.pdf:$pdf$2*3*128*-1060*1*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="方法-2hashcat-gpu-加速">方法 2：Hashcat GPU 加速&lt;/h3>
&lt;p>Hashcat 对不同版本的 PDF 有单独的模式编号：&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-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># PDF 1.1-1.3 (RC4 40-bit) - 模式 10400&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">hashcat -m &lt;span class="m">10400&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"># PDF 1.4-1.6 (RC4 128-bit) - 模式 10500&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">hashcat -m &lt;span class="m">10500&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"># PDF 1.7 Extension 3 (AES-128) - 模式 10600&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">hashcat -m &lt;span class="m">10600&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"># PDF 1.7 Extension 8 (AES-256) - 模式 10700&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">hashcat -m &lt;span class="m">10700&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="各版本-pdf-的破解速度对比">各版本 PDF 的破解速度对比&lt;/h3>
&lt;p>以 GTX 3080 显卡为参考：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>PDF 版本&lt;/th>
&lt;th>Hashcat 模式&lt;/th>
&lt;th>大约速度&lt;/th>
&lt;th>破解 6 位数字密码时间&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>1.1-1.3&lt;/td>
&lt;td>10400&lt;/td>
&lt;td>~50M/s&lt;/td>
&lt;td>不到 1 秒&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>1.4-1.6&lt;/td>
&lt;td>10500&lt;/td>
&lt;td>~10M/s&lt;/td>
&lt;td>约 100 秒&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>1.7 Ext 3&lt;/td>
&lt;td>10600&lt;/td>
&lt;td>~50K/s&lt;/td>
&lt;td>约 20 天&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>1.7 Ext 8&lt;/td>
&lt;td>10700&lt;/td>
&lt;td>~10K/s&lt;/td>
&lt;td>约 100 天&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>可以看到，PDF 版本越高，破解难度呈指数级增长。&lt;/p>
&lt;h3 id="方法-3python--pikepdf-字典爆破">方法 3：Python + pikepdf 字典爆破&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;/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">pikepdf&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_pdf&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">pdf_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="s2">&amp;#34;&amp;#34;&amp;#34;使用字典尝试破解 PDF 打开密码&amp;#34;&amp;#34;&amp;#34;&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">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">f&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">i&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">line&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">enumerate&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="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="n">pdf&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">pikepdf&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">open&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">pdf_path&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">i&lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2"> 次尝试，密码找到: &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="n">pdf&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">save&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;decrypted_&lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">pdf_path&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 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="n">pikepdf&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">PasswordError&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 class="k">except&lt;/span> &lt;span class="ne">Exception&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="n">e&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;尝试 &amp;#39;&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;#39; 时出错: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">e&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 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 class="k">return&lt;/span> &lt;span class="kc">None&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_pdf&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;secret.pdf&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="方法-4pdfcrack轻量级开源工具">方法 4：PDFCrack（轻量级开源工具）&lt;/h3>
&lt;p>&lt;a class="link" href="https://github.com/robins/pdfcrack" target="_blank" rel="noopener"
>pdfcrack&lt;/a> 是一个专门针对 PDF 的密码破解工具：&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;/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"># 编译安装&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">git clone https://github.com/robins/pdfcrack.git
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">cd&lt;/span> pdfcrack
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">make
&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">./pdfcrack -f encrypted.pdf -w 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"># 暴力破解（指定字符集和长度范围）&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">./pdfcrack -f encrypted.pdf --minlen&lt;span class="o">=&lt;/span>&lt;span class="m">1&lt;/span> --maxlen&lt;span class="o">=&lt;/span>&lt;span class="m">6&lt;/span> -c &lt;span class="s2">&amp;#34;0123456789&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="方法-5云端在线恢复服务">方法 5：云端在线恢复服务&lt;/h3>
&lt;p>对于不方便本地部署工具的用户，或者 PDF 版本较高（AES-128/256）本地算力不足的情况，可以考虑云端恢复服务。&lt;/p>
&lt;p>&lt;strong>&lt;a class="link" href="https://www.catpasswd.com" target="_blank" rel="noopener"
>猫密网 (Catpasswd)&lt;/a>&lt;/strong> 支持部分加密类型的 PDF 文件密码恢复。使用流程非常简单：&lt;/p>
&lt;ol>
&lt;li>访问 &lt;a class="link" href="https://www.catpasswd.com" target="_blank" rel="noopener"
>catpasswd.com&lt;/a> → &lt;a class="link" href="https://www.catpasswd.com/recovery" target="_blank" rel="noopener"
>上传文件&lt;/a>&lt;/li>
&lt;li>上传加密的 PDF 文件&lt;/li>
&lt;li>填写邮箱等待通知&lt;/li>
&lt;li>系统利用云端算力自动尝试千万级密码组合&lt;/li>
&lt;/ol>
&lt;p>对于高度敏感的 PDF 文件（如合同、财报、法律文书），猫密网提供&lt;strong>本地特征提取工具&lt;/strong>，你可以在自己的电脑上提取文件加密特征，仅上传特征数据（几 KB），源文件完全不会离开你的电脑。&lt;/p>
&lt;blockquote>
&lt;p>💡 &lt;strong>小贴士&lt;/strong>：猫密网提供免费恢复模式，可以先试试能不能找回，不成功不收费。&lt;/p>
&lt;/blockquote>
&lt;h2 id="pdf-密码破解的实战技巧">PDF 密码破解的实战技巧&lt;/h2>
&lt;h3 id="1-先确定-pdf-版本">1. 先确定 PDF 版本&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;/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"># 查看 PDF 版本和加密信息&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">qpdf --show-encryption encrypted.pdf
&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"># 或使用 Python&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">import pikepdf
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">pdf&lt;/span> &lt;span class="o">=&lt;/span> pikepdf.open&lt;span class="o">(&lt;/span>&lt;span class="s2">&amp;#34;encrypted.pdf&amp;#34;&lt;/span>, &lt;span class="nv">password&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;&amp;#34;&lt;/span>&lt;span class="o">)&lt;/span> &lt;span class="c1"># 如果有打开密码需要填入&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">print&lt;span class="o">(&lt;/span>pdf.Root.Version&lt;span class="o">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>了解版本后，可以针对性选择破解策略：低版本 PDF 可以用更高效的攻击方式。&lt;/p>
&lt;h3 id="2-利用-pdf-的已知漏洞">2. 利用 PDF 的已知漏洞&lt;/h3>
&lt;p>PDF 1.4（RC4 128-bit）有一个著名的漏洞：权限密码和打开密码使用相同的加密密钥。这意味着如果你能绕过权限密码（用 qpdf），实际上就获得了文件内容。&lt;/p>
&lt;h3 id="3-常见的-pdf-密码模式">3. 常见的 PDF 密码模式&lt;/h3>
&lt;p>很多人设置 PDF 密码时会用以下模式：&lt;/p>
&lt;ul>
&lt;li>纯数字（如身份证号、手机号、生日）&lt;/li>
&lt;li>公司名/文件名 + 年份&lt;/li>
&lt;li>&amp;ldquo;password&amp;rdquo;、&amp;ldquo;123456&amp;rdquo; 等弱口令&lt;/li>
&lt;li>项目代号或合同编号&lt;/li>
&lt;/ul>
&lt;p>建议先用这些常见模式生成自定义字典，比盲目使用通用字典效率高得多。&lt;/p>
&lt;h3 id="4-银行政府类-pdf-的特殊处理">4. 银行/政府类 PDF 的特殊处理&lt;/h3>
&lt;p>银行账单、税务文件等通常使用数字密码（如身份证后6位、手机号后4位）。可以先用纯数字字典尝试：&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-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 生成 6 位纯数字字典&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;digits6.txt&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;w&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="k">for&lt;/span> &lt;span class="n">i&lt;/span> &lt;span class="ow">in&lt;/span> &lt;span class="nb">range&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="mi">1000000&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">f&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">write&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">i&lt;/span>&lt;span class="si">:&lt;/span>&lt;span class="s2">06d&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="se">\n&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;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>权限密码&lt;/td>
&lt;td>qpdf 移除&lt;/td>
&lt;td>qpdf&lt;/td>
&lt;td>极低&lt;/td>
&lt;td>即时&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>权限密码&lt;/td>
&lt;td>pikepdf 保存&lt;/td>
&lt;td>Python&lt;/td>
&lt;td>低&lt;/td>
&lt;td>即时&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>权限密码&lt;/td>
&lt;td>Chrome 打印&lt;/td>
&lt;td>浏览器&lt;/td>
&lt;td>极低&lt;/td>
&lt;td>即时&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>打开密码&lt;/td>
&lt;td>John the Ripper&lt;/td>
&lt;td>命令行&lt;/td>
&lt;td>中&lt;/td>
&lt;td>中&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>打开密码&lt;/td>
&lt;td>Hashcat&lt;/td>
&lt;td>GPU&lt;/td>
&lt;td>高&lt;/td>
&lt;td>快&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>打开密码&lt;/td>
&lt;td>pdfcrack&lt;/td>
&lt;td>命令行&lt;/td>
&lt;td>中&lt;/td>
&lt;td>中&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>打开密码&lt;/td>
&lt;td>&lt;a class="link" href="https://www.catpasswd.com" target="_blank" rel="noopener"
>猫密网&lt;/a>&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;h3 id="q-pdf-密码和-word-密码哪个更难破解">Q: PDF 密码和 Word 密码哪个更难破解？&lt;/h3>
&lt;p>一般来说，高版本 PDF（AES-256）比 Word 2013+ 更难破解，因为 PDF 的密钥派生函数（KDF）迭代次数更多。但低版本 PDF（RC4 40-bit）比任何版本的 Word 都容易得多。&lt;/p>
&lt;h3 id="q-adobe-acrobat-能帮忙找回密码吗">Q: Adobe Acrobat 能帮忙找回密码吗？&lt;/h3>
&lt;p>不能。Adobe Acrobat 只能设置和管理密码，没有&amp;quot;找回密码&amp;quot;功能。如果你忘记了打开密码，只能通过本文介绍的破解方法。&lt;/p>
&lt;h3 id="q-为什么有的-pdf-在线解锁工具不工作">Q: 为什么有的 PDF 在线解锁工具不工作？&lt;/h3>
&lt;p>在线解锁工具（如 ilovepdf）只能移除权限密码（Owner Password），对打开密码（User Password）无效。如果文件有打开密码，必须使用密码恢复工具。&lt;/p>
&lt;h3 id="q-扫描版-pdf-和文字版-pdf-在加密上有什么区别">Q: 扫描版 PDF 和文字版 PDF 在加密上有什么区别？&lt;/h3>
&lt;p>加密方式没有区别，但扫描版 PDF 文件通常更大（因为包含图片），上传到云端服务时可能需要注意文件大小限制。超过 100MB 的文件可以使用 &lt;a class="link" href="https://www.catpasswd.com" target="_blank" rel="noopener"
>猫密网&lt;/a> 的特征提取工具来处理。&lt;/p>
&lt;h2 id="总结">总结&lt;/h2>
&lt;p>PDF 密码破解的难度取决于 PDF 版本和加密算法：&lt;/p>
&lt;ul>
&lt;li>&lt;strong>权限密码&lt;/strong>：用 qpdf 或 pikepdf 一键移除，非常简单&lt;/li>
&lt;li>&lt;strong>打开密码 + 低版本 PDF&lt;/strong>：用 John the Ripper 或 pdfcrack，速度很快&lt;/li>
&lt;li>&lt;strong>打开密码 + 高版本 PDF&lt;/strong>：建议使用 Hashcat GPU 加速或 &lt;a class="link" href="https://www.catpasswd.com" target="_blank" rel="noopener"
>猫密网&lt;/a> 等云端服务&lt;/li>
&lt;/ul>
&lt;p>最好的策略永远是：设置密码时就记录在安全的地方（如密码管理器），避免日后给自己制造麻烦。但如果已经忘记了密码，希望本文的方法能帮到你。&lt;/p></description></item></channel></rss>