[英]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.