繁体   English   中英

使用Java加密pdf中的嵌入式附件

[英]crypt embedded attachments in pdf with java

我们需要使用Java将文件嵌入到pdf文件中,并且需要使用证书对文件进行加密。几个月前,我使用itext(如果我不戴)发现了一些东西,但现在找不到了。智能卡

使用公共证书对PDF进行加密。 PDF加密后,只有具有相应私人证书的人才能打开PDF。 在您的情况下,这意味着只有拥有智能卡的人才能打开文档。

首先,您需要从智能卡中提取公共证书。 这里的主要问题是:您想用Java做到这一点吗? 如果是这样,您是否要使用PKCS#11进行此操作? 使用MSCAPI? 使用智能卡API? 老实说,我不认为这是您想要做的。 我认为您希望智能卡的所有者手动提取其公共证书并将其发送给您。 如果这个假设是错误的,则需要发布另一个问题:如何从智能卡获取公共证书。

获得此证书后,可以像下面这样加密PDF:

 PdfReader reader = new PdfReader(src);
 PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
 Certificate cert = getPublicCertificate("resources/encryption/public.cer");
 stamper.setEncryption(new Certificate[]{cert},
     new int[]{PdfWriter.ALLOW_PRINTING}, PdfWriter.ENCRYPTION_AES_128);
 stamper.close();
 reader.close();

公共证书存储在文件public.cer 那就是您的最终用户从智能卡中提取的文件。

如果要单独加密附件,则必须在这些文件级别执行此操作。 目前尚不清楚您是在谈论PDF还是其他类型的文档。

我已经复制了我书中的源代码片段

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM