如何安全地加密pdf文件



我有一个应用程序,其中spring-boot是后端,jquery是前端。我可以创建文档,但没有加密或任何类型的保护,所以我需要弄清楚。

我需要保护 pdf 文件。最好的方法是什么?

  • 我可以添加选项以在前端为该pdf文件设置密码。因此,有权创建文档的用户将为他和可以访问文档的用户设置密码。
  • 同样的故事,但文档的创建者只会为普通用户选择密码,而"主"密码只会在后端秘密使用
  • 我将如何存储这些密码?在数据库中?以及如何/哪种格式?
  • 如何将这些密码分发给用户?使用电子邮件向用户发送此密码是否安全?但同样,密码必须安全地存储在某个地方。
  • 这是一个好方法吗?或者最好的做法是什么?

谢谢

我认为您的问题可以通过IText引擎轻松处理。

该工具包具有方便的PDF生成和操作功能(包括带密码的安全PDF和其他签名加密系统(。

这是一个基本的例子:

PdfReader reader = new PdfReader(src);
WriterProperties props = new WriterProperties()
.setStandardEncryption(USERPASS, OWNERPASS, EncryptionConstants.ALLOW_PRINTING,
EncryptionConstants.ENCRYPTION_AES_128 | EncryptionConstants.DO_NOT_ENCRYPT_METADATA);
PdfWriter writer = new PdfWriter(new FileOutputStream(dest), props);
PdfDocument pdfDoc = new PdfDocument(reader, writer);
pdfDoc.close();

注意:

请注意,USERPASSOWNERPASS属于byte[]

public static byte[] USERPASS = "superuser".getBytes(); public static byte[] OWNERPASS = "superowner".getBytes();

您有不同的权限选项(查找以 ALLOW_ 开头的EncryprionConstants(,也可以从不同的加密算法中进行选择。

最新更新