我有一个应用程序,其中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();
注意:
请注意,USERPASS和OWNERPASS属于byte[]
型
public static byte[] USERPASS = "superuser".getBytes(); public static byte[] OWNERPASS = "superowner".getBytes();
您有不同的权限选项(查找以 ALLOW_ 开头的EncryprionConstants
(,也可以从不同的加密算法中进行选择。