在pdftk我可以看到三个选项:
1$ pdftk input.pdf output protected-userpw.pdf userpw very_secret
2$ pdftk input.pdf output protected-ownerpw.pdf ownerpw very_secret
3$ pdftk input.pdf input_pw very_secret output protected-input.pdf
Run Code Online (Sandbox Code Playgroud)
当我打开protected-ownerpw.pdf和protected-input.pdf我不要求输入密码。只protected-userpw.pdf给出预期的结果。做什么ownerpw和input_pw做什么?
我用来qpdf从受保护的文件中创建不受保护的文件。现在我想知道这是否总是有效。PDF格式支持哪些密码保护机制?以及什么qpdf支持。
所有者和用户密码不同的含义
在 PDF 文档中,您可以设置安全权限,如
这些实际上只是文档中的标志,这取决于 pdf 阅读器,无论它是否遵守它们。
当您只设置所有者密码时,用户密码会自动设置为空。PDF 文件仍处于加密状态(所有流和字符串将以加密形式保存),但可以使用空密码解密。因此,您可以在不输入任何密码的情况下打开 PDF,但是一旦打开,您就只有对文档执行某些操作的权限,如安全权限中指定的那样。所以也许他不被允许打印文件。
当您设置用户和所有者密码时,打开 PDF 的人需要在打开过程中指定所有者或用户密码。如果他指定了用户密码,他的安全权限是根据pdf中的安全设置。如果他使用了所有者密码,他将获得所有安全权限。
PDF 加密 PDF 支持多种不同的加密算法。RC4 或 AES 的加密密钥长度为 40 到 128 以及用户定义的算法,pdf 规范中未涵盖这些算法。在最近对 PDF 1.7 规范(扩展级别 3)的扩展中,还指定了 AES 256。在后来的扩展中指定了一个更新,它稍微修改了 AES 256 并修复了理论上的安全漏洞。一些工具在这些最后的扩展方面仍然存在问题(但我不知道 qpdf)。这些扩展在今天发布的 PDF 2.0 的 ISO 规范中的普通 pdf 规范中都可用。