PDF 密码保护

使用 AES 加密为您的 PDF 文件添加密码保护。设置打开和编辑密码以及精细的权限。

您的文件永不离开您的设备
将 PDF 拖放到此处 或点击浏览

支持 PDF · 最大 100 MB

工作原理

  1. 使用上方的拖放区域上传 PDF 文件。
  2. 输入打开密码(必需),并可选择输入所有者/编辑密码。
  3. 选择加密强度:128 位 AES(标准)或 256 位 AES(军用级)。
  4. 选择允许的权限(打印和复制)。
  5. 点击"保护 PDF"以应用加密。
  6. 立即下载受密码保护的 PDF。

为什么要保护 PDF?

密码保护确保只有授权用户才能访问敏感文档。为您的机密 PDF、合同、财务报告和个人数据添加额外的安全层。

密码类型说明

加密级别

常见问题

什么是 AES 加密?

AES(高级加密标准)是一种对称加密算法,被世界各地的政府、银行和安全软件所使用。128 位 AES 提供强大的安全性;256 位 AES 提供军用级安全性。

我可以从受保护的 PDF 中移除密码吗?

如果您拥有所有者/编辑密码,您可以移除限制。但是,如果您忘记了打开密码,则无法恢复 PDF,这正是真正加密的目的。

我的 PDF 安全吗?

是的。所有处理都在您的浏览器中进行。您的 PDF 从不离开您的设备,也从不发送到服务器。

文件大小限制是多少?

可处理最大 100 MB 的 PDF。处理时间取决于文件大小和加密级别。

如果有人绕过密码会发生什么?

AES 加密保护 PDF 内容本身。解密和查看内容需要密码;没有密码,数据仍然不可读。

「PDF 密码保护」究竟意味着什么

PDF 规范区分了用户界面统称为「为文件设置密码保护」的两种操作:加密内容使文件在没有密码的情况下无法读取,以及限制已经可读的文件能做什么。两者都在同一个加密字典中配置,都使用相同的加密算法,但它们应对不同的威胁模型。

用户密码(也叫打开密码或文档打开密码)是你需要输入才能打开文档的密码。文件的内容流(页面文本、字体、嵌入图像)使用从此密码派生的密钥加密,因此磁盘上的字节是密文,任何 PDF 阅读器都无法在不首先解密的情况下渲染它们。如果你忘记了用户密码,内容就丢失了:没有在线工具可以恢复它,唯一现实的选择是用桌面破解工具进行密码穷举搜索或接受丢失。

所有者密码不同。文档仍然是加密的,但打开操作无需输入任何密码就能成功;任何 PDF 阅读器都可以渲染文件。所有者密码保护的是阅读器被允许执行的操作集,编码在加密字典的 32 位 P 字段中。P 中的位控制打印、复制文本、修改内容、填写表单、为辅助功能提取以及组装页面。本工具设置两者:打开密码(必填)控制谁可以读取文件,所有者密码(可选)控制阅读器一旦打开后被允许做什么。如果你将所有者密码留空,工具会将你的打开密码镜像到所有者槽,这意味着任何能打开文件的人也能对它做任何事;设置不同的所有者密码使限制有意义。

本工具的工作原理

本工具使用 qpdf,这是 Jay Berkenbilt 用 C++ 编写并自 2008 年起维护为开源的结构化 PDF 工具包。qpdf 是 PDF 结构化操作的参考实现:它是 Ghostscript、PDFtk、大多数 Linux 命令行 PDF 实用程序的构建块,也是许多自称为专有技术的云 PDF 服务的底层。qpdf 实现了 PDF 规范中定义的标准安全处理器(Filter /Standard),涵盖从 RC4 40 位(PDF 1.1,1994)到 AES-256 V=5/R=6(PDF 2.0,当前)的所有基于密码的加密方案。

qpdf 通过 Emscripten 编译为 WebAssembly,产生一个约 1.3 MB 的模块,在这个浏览器标签页中运行。模块是延迟加载的,在你第一次点击「保护」时加载,所以仅访问页面没有任何成本。一旦加载,浏览器会缓存它;同一会话中的后续保护和未来的访问都是即时的。当你上传 PDF 时,pdf-lib(一个较小的 JavaScript 库)读取页数和文件大小用于信息显示;pdf-lib 不执行加密,只读取元数据。当你点击「保护」时,qpdf WASM 模块通过内存中的 Emscripten 文件系统接收 PDF 字节,执行等同于命令行 qpdf --encrypt <user-pw> <owner-pw> <bits> --use-aes=y --print=full/none --extract=y/n --modify=none -- in.pdf out.pdf 的操作,并将加密的字节作为 Blob 返回到页面,页面将其包装成下载 URL。

加密过程中不会触发任何网络请求。你可以验证:在点击「保护」之前打开浏览器开发者工具的「网络」选项卡,运行操作,观察除了首次访问时一次性下载 qpdf 模块外,没有任何东西离开你的机器。一个小而有用的细节:qpdf 接受 128 作为加密强度,但默认使用 RC4-128 以向后兼容旧的 PDF 工具。本工具始终为 128 位传递 --use-aes=y,使 UI 标签「128 位 AES」诚实;256 位始终是 AES(RC4 在该密钥长度下未定义),因此那里不需要该标志。

PDF 加密,1994 年到 2026 年,本工具可以写入的算法

权限位实际控制什么

P 字段是一个 32 位整数;每个位在设置时授予一个操作。PDF 规范从 1(最低位)到 32(最高位)编号位,而不是计算中更常见的 0 到 31 约定。实际中的位:第 3 位(打印,第 12 位进一步控制高质量打印)、第 4 位(修改内容,主要是文本编辑)、第 5 位(复制和提取文本或图形)、第 6 位(修改注释:笔记、高亮、印章)、第 9 位(填写 AcroForm 字段)、第 10 位(为辅助功能提取,屏幕阅读器依赖于此)、第 11 位(组装:插入、删除、旋转页面)。本工具暴露最终用户最常控制的两个位:打印(第 3 位,「允许打印」)和复制(第 5 位,「允许复制文本和图形」)。它始终在后台设置 --modify=none,一次清除第 4、6、9 和 11 位,这是一个保守的默认值,表示「文件用于阅读和打印,不用于编辑」。第 10 位(辅助功能)保持开启,以便屏幕阅读器继续工作。

残酷的真相:权限是建议性的。Adobe Acrobat、Adobe Reader 和许多商业阅读器尊重它们,其他阅读器经常忽略它们。Firefox 的内置 PDF.js 查看器有意忽略权限标志;Chrome 的查看器在很大程度上尊重打印限制,但通过右键单击允许你保存未受限的字节;大多数开源阅读器(Okular、Evince、MuPDF、SumatraPDF)在不同程度上尊重位,并有退出设置;在线「PDF 权限删除器」简单地用所有权限设置重写文件,这在没有所有者密码的情况下也能工作,因为加密层是装饰性的。本工具设置权限是因为标准这么说,也因为有原则的阅读器尊重它们。权限防御的威胁模型是「使用 Adobe Acrobat 并遵循文档精神的接收者」。对于真正的预防,打开密码(这是真正的加密)是你的防御;所有者密码是一种礼节。

选择强密码

密码强度在用户密码情况下很重要,因为加密是真实的:对一个良好加密的 PDF 的唯一攻击是穷举搜索密码空间。当前 NIST 指南(SP 800-63B)规定,单因素身份验证密码应至少 15 个字符。理由,得到学术研究和最近泄露数据的充分支持,是长度主导熵:一个 20 个字符的常用词密码短语(「correct horse battery staple」风格)有大约 90 位熵,需要几个世纪才能暴力破解,而一个 8 个字符的混合大小写字母数字(「Tr0ub4dor」)有大约 40 位,在商用 GPU 硬件上几小时内就会被破解。

实用建议:使用 4 到 6 个不相关单词的密码短语,总长度 20+ 个字符。「rotor saxon embargo trout swivel」比「P@ssw0rd2026!」强得多,如果你必须从手机上读取,它也更容易输入。如果你使用密码管理器(1Password、Bitwarden、KeePassXC),在那里生成 20 个字符的随机密码,并将 PDF 和它的密码一起保存;接收者通过带外渠道(单独的电子邮件、电话、经过身份验证的渠道)获取密码,并将其存储在自己的保险库中。避免出现在泄露数据库中的密码。不要重用来自其他服务的密码:PDF 在收件箱和云驱动器中保留的时间比会话 cookie 长得多,2018 年在一个被遗忘的论坛上泄露的密码仍将打开一个 2026 年的 PDF。

驱动 PDF 保护的真实工作流

常见陷阱及其含义

仅浏览器与云端保护

每个云端 PDF 保护服务(Smallpdf、ILovePDF、PDF24 web、Adobe Acrobat Online、Sejda)都将 PDF 上传到运营商的服务器,在那里加密,并将加密的副本作为下载返回。隐私影响以三种重要方式不同于普通的文件上传。首先,文件内容在上传时按定义是未加密的(运营商正在加密它,因此运营商拥有明文)。其次,你输入的密码被传输到运营商的基础设施;即使它在传输时被哈希,它也在加密步骤中以明文存在。第三,运营商现在同时拥有明文文件和密码,因此运营商的任何泄露(日志、快照、事件响应、内部人员)都会让攻击者获得明文文件。主要运营商发布的隐私政策承诺传输中使用 TLS、几小时到一天内删除以及(对于较大的运营商)经 ISO/IEC 27001 认证的基础设施,但激励 PDF 加密的威胁模型通常与即使短暂地将明文交给第三方不兼容。

本工具不上传 PDF 或密码。qpdf WASM 模块在浏览器选项卡中运行,通过 File API 接收文件字节,通过标准 HTML 输入接收密码,并将加密的字节作为 Blob 返回到同一选项卡。你可以证明:在点击「保护」之前打开「网络」选项卡的开发者工具,运行操作,观察是否有任何带有文件内容或密码的请求被触发。唯一的网络流量是每会话首次加密时 qpdf 模块的一次性获取。权衡的是功能范围:云服务通常将 OCR、Word/Excel 转换、批量上传或水印叠加与加密一起捆绑。这里浏览器端的加密只做加密。对于 OCR 或格式转换,云服务是正确的选择;对于隐私态势重要的敏感文档,浏览器才是。

更多常见问题

哪些 PDF 阅读器支持 AES 256 位加密?

Adobe Acrobat 和 Adobe Reader 自 9.0 版(2008 年)起,macOS 上的 Apple Preview 自 10.6 版(2009 年)起,Google Chrome 的内置查看器自 2012 年起,Microsoft Edge 的 PDF 查看器自 2015 年起,Firefox 的 PDF.js 自 2018 年起,自 2015 年以来构建的所有主流 iOS 和 Android 阅读器,以及基于 qpdf/Ghostscript/Poppler 的开源阅读器自 2000 年代后期起。无法打开 AES-256 的阅读器只有 2008 年之前的 Acrobat 版本、企业硬件中的一些遗留嵌入式阅读器(ATM 控制台、医疗设备、工业控制)以及在 2015 年之前被放弃的少数模糊的移动阅读器。

我可以加密已经加密的 PDF 吗?

不能直接。工具需要读取 PDF 的结构才能加密它,而已加密的 PDF 阻止读取,直到你提供密码。标准工作流是先用 免费在线 PDF 解锁 解锁 PDF(需要现有密码),然后使用本工具用新密码加密解锁的输出。两步过程是用于「从遗留 RC4 迁移到 AES-256」归档工作流的相同模式。

我应该在签名、展平、压缩之前还是之后加密?

一般顺序是:编辑、展平、签名、加密。签名计算文档字节的加密哈希,因此任何后续修改(包括加密)都会使签名失效。加密重写文档,所以在加密之前展平,否则加密可能会与表单字段结构交互。压缩通常在加密之前进行,因为加密的字节本质上是随机的,之后压缩不佳。完整的安全顺序:展平你想要永久的任何表单字段,压缩以减小大小,如果需要加密来源则签名,最后加密以添加密码保护。

加密相当于密码保护的 ZIP 吗?

在安全边界上实际相似(都依赖于 AES-256),但 PDF 加密与 PDF 阅读器集成(接收者只需打开文件并获得密码提示),而 ZIP 加密要求接收者先提取文件。PDF 加密还支持所有者密码权限层(在尊重它们的阅读器中的打印/复制限制),而 ZIP 没有。对于接收者需要在正常阅读器中读取 PDF 的文件,PDF 加密是更流畅的选择。对于混合内容(多个文件、一个文件夹、非 PDF 附件),ZIP 加密是唯一的选择。

PDF 加密是否足以满足 HIPAA、GDPR、PCI DSS 合规性?

使用强密码的 AES-256 加密满足 HIPAA、GDPR 第 32 条和 PCI DSS 要求 3.5 所要求的「静态加密」技术标准。它是否满足完整的合规制度取决于你其余的数据处理实践:密码如何共享(大多数制度要求带外渠道)、访问如何记录(HIPAA 需要审计追踪),以及密钥轮换如何处理。仅有加密对于合规是必要但不充分的;请咨询你的 DPO 或合规官以获得完整的情况。

有桌面或命令行等效物吗?

qpdf 在每个平台上运行:macOS 上 brew install qpdf,Debian 或 Ubuntu 上 apt install qpdf,Windows 可从 qpdf GitHub 下载二进制文件。AES-256 加密的 CLI 语法是 qpdf --encrypt USER-PW OWNER-PW 256 -- input.pdf output.pdf。相同的库、与本工具相同的隐私态势,有助于通过 shell 循环进行批量处理。Adobe Acrobat Pro 的「文件 > 保护 > 加密」菜单使用 GUI 做相同的事情;对于 PowerShell 或 zsh 中的命令行,qpdf 是最接近的等效物。

相关工具