跳到正文

为PDF设置密码保护

用AES-256加密PDF,没有密码就无法打开——文件和密码都绝不会被存储,而这才是密码工具唯一应有的工作方式。

  • 绝不存储
  • 无需排队,无需等待
  • 无需注册,无水印

使用方法

1

添加PDF

拖放您要加密的文档。

2

设置密码

输入两次。还可以选择是否允许打印、复制和编辑。

3

下载

加密后的PDF在任何设备、任何阅读器中打开时都会要求输入密码。

加密对文件做了什么

PDF的加密是分别作用于每个字符串和每个数据流的,这意味着必须先让它们每一个都能被单独访问。因此,文档会先把对象流和交叉引用流展开,恢复为普通的编号对象和传统索引,然后才逐一加密。这就是加密后的文件通常比原文件略大的原因:结构不再打包进压缩流中,字符串变成了十六进制密文,而且每个加密片段都带有一个16字节的初始化向量。

内部内容原样保留——页面、书签大纲、表单字段及其值、附件和标签都是被包裹起来而非重写。只有一样东西不会保留:文档信息字典。标题、作者、主题和创建日期不会带入重建后的文件,所以阅读器显示加密文档时这些字段是空的。XMP元数据流——很多软件读取的是它——会保留,并与内容一起加密。

这里写入的是PDF格式定义的最新加密方式,而这在接收端是有代价的。大约2011年以前的阅读器——Acrobat 9及更早版本、一些电子书阅读器、扫描仪和多功能打印机内置的查看器——根本打不开AES-256加密的文件,会报告文件已损坏或不受支持,而不是要求输入密码。

如果您需要的是别的

PDF密码只控制谁能打开文件,之后的事一概不管。打开文件的人几秒钟就能另存一份无保护的副本,所以它保护的是传输中和共享盘上的文档,防不了您发送的对象。如果要求只有某一位指定收件人能读到内容,请改为加密容器——用带AES的7-Zip压缩包,或用对方的密钥进行age或GPG加密——并通过与文件不同的渠道发送密码。

如果要批量处理,或者收件人使用旧软件,qpdf可以用脚本完成同样的工作,并允许选择较旧的标准:qpdf --encrypt --user-password=... --owner-password=... --bits=128 --use-aes=y -- in.pdf out.pdf会写入AES-128,2000年代中期以来的阅读器都能打开。

常见问题

加密强度如何?

采用AES-256和第6版密钥派生——这是PDF格式定义的最强加密,也是Acrobat使用的同一标准。密码会经过一个刻意设计得很慢的哈希算法,让显卡无法加速猜解。

我的文件或密码会被存储吗?

都不会,而这个工具正是最需要这一点的地方。不存储任何内容,所以您的文档和保护它的密码,永远不会同时落入他人之手。在服务器上加密的网站,按定义就已经同时看到了两者。

忘记密码怎么办?

文件就打不开了。没有找回方式,没有后门,也没有万能密钥——正因如此,这种加密才有意义。发送文件之前,请把密码记在安全的地方。

权限设置到底有什么用?

它们告诉阅读器软件允许做什么——打印、复制文字、编辑。请对它们有清醒的认识:它们只是请求,而不是加密,任何有心人都可以无视。真正保护文档的,是打开密码。

在手机、Acrobat、Chrome中都能打开吗?

都能。这是标准的PDF加密,所以各平台上的所有现代阅读器都会提示输入密码并打开文件。

可以给已经加密的PDF再加密吗?

请先用“PDF解密”移除原有密码,再用新密码重新加密。

小贴士: 密码的作用取决于它的强度:短密码或常见密码,任何拿到文件的人都可以离线猜出来。请使用长密码。权限设置(打印、复制、编辑)只是建议性的,只有遵守规范的阅读器才会执行。

把这个工具放到您的网站上

博客、课程页面或帮助文章均可免费使用。粘贴一段代码,访客就能直接在您的页面上使用。