PDF 加密比其他文件格式更「诡异」——它有用户密码和所有者密码两套机制,安全性差异巨大。上周遇到一个案例:一份加密的 PDF 合同,打不开也打印不了,折腾了一下午终于搞定了。这篇文章把 PDF 密码恢复的技术细节彻底讲清楚。
PDF 加密的两种密码
PDF 的加密机制和其他文件格式最大的不同在于:它有两种独立的密码。
用户密码(User Password / Open Password):
作用:打开文件时必须输入
效果:文件内容被加密,没有密码无法查看
恢复难度:取决于加密算法版本
这是真正意义上的「加密」
所有者密码(Owner Password / Permissions Password):
作用:限制打印、复制、编辑等操作
效果:文件可以打开查看,但不能执行受限操作
恢复难度:★☆☆☆☆(几乎可以秒解)
这不是真正的加密,只是一个「限制标记」
如何判断你的 PDF 是哪种密码?
场景 1:打开 PDF 时弹出密码输入框
→ 用户密码(需要正经恢复)
场景 2:可以打开查看,但打印按钮灰色/复制文字失败
→ 所有者密码(可以轻松移除)
场景 3:既需要密码打开,又有操作限制
→ 两种密码都设置了(先恢复用户密码,再移除所有者密码)
所有者密码:秒解方案
所有者密码不加密文件内容,只是在 PDF 元数据中设置了一个权限标记。有密码可以修改权限,没密码也可以直接移除。
方法 1:Ghostscript(命令行,免费)
# 安装 Ghostscript
# macOS: brew install ghostscript
# Ubuntu: sudo apt install ghostscript
# 移除所有者密码(重新生成 PDF)
gs -q -dNOPAUSE -dBATCH \
-sDEVICE=pdfwrite \
-dCompatibilityLevel=1.4 \
-sOutputFile=unlocked.pdf \
encrypted.pdf
# 原理:Ghostscript 读取 PDF 内容后重新生成一个新的 PDF
# 新 PDF 不包含任何权限限制
方法 2:qpdf(命令行,免费)
# 安装 qpdf
# macOS: brew install qpdf
# Ubuntu: sudo apt install qpdf
# 移除所有加密
qpdf --decrypt encrypted.pdf unlocked.pdf
# 如果同时有用户密码,需要提供密码
qpdf --password=yourpassword --decrypt encrypted.pdf unlocked.pdf
方法 3:在线工具
各种在线 PDF 工具(如 ilovepdf.com、smallpdf.com)都可以一键移除所有者密码限制。原理和 Ghostscript 一样——读取内容后重新生成。