PDF 密码加密与解密
两种操作
ZenConverter 提供两个 PDF 密码相关的独立操作:
| 操作 | 说明 | 前提 |
|---|---|---|
| 加密 PDF | 给 PDF 加打开密码(Open Password),不知道密码打不开 | PDF 本身未加密 |
| 解密 PDF | 移除已加密 PDF 的密码,输出一个无密码的 PDF | 你需要知道原密码 |
加密流程
- 选一个未加密的 PDF → 选"加密 PDF";
- 输入密码(只在本次任务里用,不存);
- 开始 → 输出一个加密的 PDF。
加密的强度和算法由 PDFBox-Android 内部处理(RC4 128-bit 或 AES 256-bit,取决于 PDF 版本)。ZenConverter 不暴露这些底层选项,因为普通用户不需要选。
解密流程
- 选一个已加密的 PDF → 选"解密 PDF";
- 输入原密码;
- PDFBox-Android 用这个密码尝试打开 PDF;
- 成功 → 输出无密码的 PDF;
- 失败(密码不对)→ 明确报错,不会输出有问题的文件。
安全承诺
ZenConverter 在密码处理上的三个保证:
- 密码只在内存里处理:密码被传给 PDFBox-Android 后就在内存里,不会被写入日志文件、不会被持久化到任何存储位置;
- 不破解密码:解密路线需要你知道正确密码。ZenConverter 不做字典攻击、不做暴力破解;
- 加密是单向的:加了密码之后,如果忘了密码,ZenConverter 帮不了你(这是所有正常加密工具的共同限制)。
为什么用 PDFBox-Android 而不是 Android 系统 API
Android 的 PdfDocument 和 PdfRenderer 只支持打开已加密 PDF(如果提供了密码),但不支持创建加密 PDF。PDFBox-Android 同时覆盖了加解密两条路。
已知边界
- 密码只做打开密码:PDF 密码分两种——打开密码(不知道就打不开)和权限密码(知道打开密码但限制打印/复制)。ZenConverter 只做打开密码,不做权限密码;
- 某些加密方案不支持:PDF 历史上有多种加密算法(RC4 40-bit / RC4 128-bit / AES 128-bit / AES 256-bit)。PDFBox-Android 支持主流方案,但某些非常老或非常新的加密方案可能不兼容;
- 加解密都在 PDF 合并/压缩之前:如果一个 PDF 需要同时压缩和加密,推荐顺序是先压缩、再加密。压缩后的 PDF 更小,加密也更快。
使用场景
| 场景 | 推荐 |
|---|---|
| 合同 PDF 发邮件前加一层保护 | 加密 PDF(密码只发给收件人) |
| 朋友发来的加密 PDF 我要长期存 | 解密 PDF(知道密码后去掉,长期存无密码版) |
| 客户给的 PDF 密码忘记了 | 用其他工具破解(ZenConverter 不做这个) |
相关页面
- PDF 合并与智能压缩 —— PDF 路线总览
- PDF 提取 TXT / Markdown —— 加密 PDF 也可以先解密再提取文字
- 本地优先就是隐私优先 —— 为什么密码处理必须在本机完成
