PDF 解密的两条路:移除限制 vs 恢复忘记的密码

· 约 4 分钟 🔓 PDF 解密

PDF 解密分两条路,强度差几十个数量级。先判断面对的是哪一种,再决定要不要花时间。

先判断:权限锁还是真加密

打开 PDF 时没有要密码框就能看到内容——这是**权限密码(owner password)**保护的文件。文档本身未加密,只是阅读器在跟”禁止复制 / 打印”的 flag 说话。任何忽略 flag 的工具都能解,3 秒搞定。

打开时弹密码框——这是用户密码(user password),文档内容用 AES 算法真实加密。没密码就没内容。

这两个路径完全不同:

维度权限锁真加密
中文别名限制密码 / 所有者密码打开密码 / 用户密码
表现能看不能复制/打印看不到内容
算法本质文档不加密,只设 flagAES 加密文档对象
解开难度任意工具 3 秒取决于密码强度
合规性一般无争议自己文件可以,别人的需授权

路径一:移除权限限制

工具几乎都能解,原理是重写 PDF 时不带 /P 权限位:

# qpdf 一键解锁
qpdf --decrypt input.pdf output.pdf

--decrypt 即使没有密码也能成功——因为文档内容根本没加密。GUI 工具(包括本工具)按一下”移除限制”就行。

操作合规边界:自己的文件、合法获得的文件做这一步没问题。但有些 PDF 配套版权协议明确禁止”绕过技术保护措施”,商业用途请先看协议。

路径二:恢复用户密码

只能暴力破解或字典攻击——AES 没有数学捷径。

算法版本判断

qpdf --show-encryption file.pdf

输出类似:

R = 6
P = -3392
User password = ""
extract for accessibility: not allowed
modify document: not allowed
print document: not allowed
modify annotations: not allowed

R 是修订号:

R算法强度
2RC4 40 位极弱,现代 GPU 秒破
3RC4 128 位弱(被密码学界标弃,但 PDF 用法仍可暴力)
4RC4 / AES-128中(KDF 迭代少,hashcat 速率 GH/s 量级)
5AES-256(PDF 1.7 ExtLevel 3)较弱——KDF 迭代极少,速率接近 R=4
6AES-256(PDF 2.0)强(标准 KDF 迭代 50+ 轮,速率降到 100k H/s 量级)

R = 2 / 3 的 PDF 古董文件,纯数字密码可能秒破;R = 5 由于 KDF 实现缺陷,强度比号称的 AES-256 弱很多个量级;只有 R = 6 才是真正抗 GPU 的强加密。

工具

工具用途速度
pdfcrack字典 + 暴力破解,CPU数千次 / 秒
John the Ripper通用密码破解,支持 GPU数万-百万次 / 秒(GPU)
HashcatGPU 加速最快数十万次 / 秒(强 GPU)

提取 PDF 密码 hash:

# John 套件提供 pdf2john.pl
pdf2john.pl encrypted.pdf > hash.txt
john --wordlist=rockyou.txt hash.txt

估算时间

时长强烈依赖加密版本——同样的密码长度,R=4 比 R=6 快约 10⁵ 倍。

R = 4 / R = 5(hashcat 速率 ≈10 GH/s,RTX 4090)

密码空间数量时间
8 位纯数字10⁸< 1 秒
8 位小写字母2×10¹¹约 20 秒
8 位字母数字2×10¹⁴约 5.5 小时
10 位字母数字8×10¹⁷约 2.5 年
12 位含特殊符号95¹²数百万年

R = 6(hashcat 速率 ≈100 KH/s,RTX 4090)

密码空间数量时间
4 位纯数字10⁴< 1 秒
6 位纯数字10⁶≈10 秒
8 位纯数字10⁸≈17 分钟
8 位小写字母2×10¹¹约 23 天
8 位字母数字2×10¹⁴约 60 年
12 位含特殊符号95¹²宇宙寿命

8 位字母 + 数字 是当前实战分界线:R=4 半天可破,R=6 几十年不可破。先 qpdf --show-encryption 看 R 再决定要不要动手。

如果是自己设的密码,往往有规律——生日、纪念日、姓名拼音。字典攻击 + 规则变换比纯爆破高效得多:

# 生成基于"zhangsan"的变形字典
hashcat --rules=best64.rule wordlist.txt hash.txt

best64 规则把 zhangsan 变成 Zhangsanzhangsan123zhangsan!@zhangsan… 几十种变形。

在线工具的真相

“在线 PDF 密码破解 30 秒搞定”几乎全是骗:

  1. 真破解:物理上需要 GPU 数小时-数年,30 秒不可能
  2. 常见操作:拿你的文件后台跑字典攻击,破不开就退还说”破解失败”
  3. 极端情况:直接保留文件作他用——敏感合同、身份证扫描件不要走在线服务

唯一可信的”在线 30 秒解开”是处理权限密码——确实快,因为不是真破解。

合规边界

场景是否合规
自己设的密码忘了合规
合法买的图书、报告一般合规(看版权协议)
客户给的加密合同应找客户拿密码,不要私自破解
第三方泄漏 / 网上下载的加密 PDF法律风险高

公司内部文档涉及合规审计 / 取证,必须走正规流程,不能私自跑工具。

实操建议

自己的文件忘密码

  1. 先试常用密码——生日、电话尾号、宠物名、现/旧邮箱密码
  2. 不行就用 hashcat + 自定义字典 + 规则变换
  3. 8 位以下基本能破,10 位以上看运气
  4. 重要文档密码要存到密码管理器——这次教训记牢

他人的文件需要解锁

  1. 优先找原作者要密码——比破解快、合规
  2. 走法律路径(取证、版权所有方授权)
  3. 别上传给在线服务

一句话总结

权限锁是几秒钟的小事,真加密是几年的大工程;动手前先用 qpdf --show-encryption 看清面对的是哪一种。

❓ 常见问题

我的 PDF "无法复制 / 打印",怎么解?

这是权限密码 / owner password 的限制,不是真加密——文档内容本身没加密,PDF 阅读器读取时只是被一个"flag"提示"禁止操作"。绕过这个 flag 用任何忽略权限位的工具都行(包括本工具、qpdf、Acrobat 自己),通常 1-3 秒完成。这种操作合规——你已经能打开文档读到内容,移除显示限制不涉及"破解加密"。

PDF 打开就要输密码,密码忘了能解吗?

这是用户密码 / user password,对文档真加密(AES-128 或 AES-256)。理论上能破,实际上看密码强度——4-6 位纯数字几分钟,8 位字母数字几小时到几天,12 位含特殊字符基本不可能。如果是自己设的且大致记得规律("是某个生日 + 某个英文单词"),用字典攻击成功率不低;完全忘记或随机生成的强密码,省时间直接放弃。

在线 PDF 解密网站靠谱吗?

权限密码靠谱——任何工具都行,本地处理更安全。解用户密码几乎全是骗局。"在线破解 PDF 密码 30 秒搞定"那种,要么是你密码本身就是弱密码字典里的常见词,要么是把文件上传后保留你的文件作为他用,要么是收钱不破解。强密码物理上不可能 30 秒爆破——AES 256 位的搜索空间是 2²⁵⁶。涉及敏感文档永远不要上传到网络服务

PDF 加密版本能看出来吗?

能。qpdf --show-encryption file.pdf 显示加密算法和位数。常见组合:RC4 40 位(PDF 1.1-1.3,老古董,秒破);RC4 128 位(PDF 1.4-1.5,2024 年密码学已标记弱);AES-128(PDF 1.6-1.7,强);AES-256(PDF 2.0,强且抗 GPU 暴力破解)。Acrobat 默认从 2010 年起用 AES-256,国产 PDF 编辑器有些默认还是 RC4——历史文件值得检查。

🔓 打开 PDF 解密 移除打开密码 · 解除复制/打印限制 · 保留文字层