加密与密码保护:Protect 和 Unlock 实际做了什么
给 PDF 加密码就是对文件内容加密,两者是同一族机制。Protect 加上打开密码,Unlock 在你知道密码时去掉它,但都找不回遗忘的密码。

人们把“给 PDF 加密码保护”和“加密 PDF”当成两个产品来说。在 PDF 格式里,它们是同一族机制:文件携带一个 /Encrypt 字典,查看器要先把密码(或等价凭证)交出来,才肯把明文页面内容给你。
“密码保护”到底意味着什么
受保护的 PDF 不只是某个应用里的界面锁。符合标准的阅读器在拿到正确的打开密码之前,会拒绝打开文档。这是对文件内容本身的加密,密钥由密码派生,解密必须要它。
保护 PDF(POST /api/v1/security/add-password)接受你选定的密码,返回一个打开时会提示输入该密码的加密文件。门户表单只有一个密码字段。服务端通过 qpdf(--encrypt)加密,把这个值当作打开密码(user password);如果调用 API 时没有另外提供所有者密码,同一个字符串也用于所有者角色。默认密钥长度是 256 位。处理结束后工具不保存你的密码;密码丢了,产出的文件就一直打不开。
用户密码与所有者密码
PDF 加密在历史上区分两种角色:
- 用户(打开)密码:不提供它就完全无法打开和查看文档。
- 所有者(权限)密码:常用来设置打印、修改限制,同时仍允许别人用用户密码打开文件(也可能按文件作者的方式使用空打开密码)。
这些是格式里的概念,不是营销标签。日常“把这份 PDF 锁起来”的流程多半只设了打开密码。不挡打开、只限制打印或编辑,讲的是所有者角色承担的权限问题,很容易和“文件打不开”混为一谈。
在 PDF123 上,Protect 表单只收一个密码,并把它当作查看文件所需的打开密码。Unlock 也需要同一个已知密码才能解密。高级 API 调用方可以在 add-password 上另外传 ownerPassword、keyLength、canPrint、canModify;浏览器表单不暴露这些旋钮。
Unlock 做什么,不做什么
移除密码(POST /api/v1/security/remove-password)在你提供正确的当前密码时,剥掉文件已有的密码加密。页面、字体和版式保持不变,消失的只是加密要求。
它不会找回、猜测或破解遗忘的密码。你本来就不掌握密码,Unlock 也不会凭空造一个。修复同样不去加密:如果获取信息 报告 Encrypted: true,先解锁,再编辑。
什么时候用哪一个
| 目标 | 工具 |
|---|---|
| 发送或分享前要求输入密码才能打开 | 保护 |
| 已经知道密码,想要一份可以自由打开的副本 | 解锁 |
| 密码忘了 | 两个工具都帮不上;把密码存在 PDF 之外 |
| 文件因结构问题打不开(与加密无关) | 修复 / 获取信息,不是 Unlock |
Protect 与 Unlock 都在服务端运行,走目录路径无需账号。加密不会让文件变小;压缩 是另一项流重压缩作业,而且仍然需要一份已解锁(或从未加密)的 PDF。OCR、表格导出和多数编辑 op 同样要求先有明文访问:用已知密码解锁,再跑别的工具。
把密码存在 PDF 之外(密码管理器、密钥库)。把打开密码和附件放进同一封邮件,保护就白做了。同一批作业走 HTTP 的用法,见开发者。