0

我已将我的数字证书导出到 Windows 中受密码保护的 PFX 文件。

我如何用这个对pdf进行数字签名?

4

3 回答 3

3

我正在使用 Aspose Pdf java sdk 签署 pdf。对于任何库,前两个步骤可能都是相同的。

如果您还没有证书,请使用 openssl 生成一个 ssl 私钥。显然这会发出警告,因为它没有由 CA 签名。

openssl req -x509 -newkey rsa:2048 -keyout testkey.pem -out testcert.pem -days 365

接下来将您的密钥转换为 pkcs12 格式的证书。

openssl pkcs12 -name test -export -in testcert.pem -inkey testkey.pem -out test.pfx

最后使用 Aspose Pdf 或其他一些库来签署 pdf

        PdfFileSignature pdfSignSingle = new PdfFileSignature();
        //Open the pdf
        pdfSignSingle.bindPdf(pdfFileInputStream);

        // Load the certificate using the com.aspose.pdf.PKCS1 object
        PKCS1 pkcs1 = new PKCS1(certificateFileInputStream, certificatePassword);
        pkcs1.setAuthority("Sample Person");
        pkcs1.setReason("I want to sign");
        pkcs1.setContactInfo("some contact info");
        pkcs1.setLocation("here");
        pkcs1.setShowProperties(false);

        // Apply the signature. (0,0) is in the lower left corner.
        pdfSignSingle.sign(1, true, new Rectangle(100, 100, 150, 50), pkcs1);
        // Apply the signature image
        pdfSignSingle.setSignatureAppearanceStream(imageFileInputStream);

        pdfSignSingle.save(pdfFileOutputStream);
于 2016-05-06T03:47:45.207 回答
0

我们的SecureBlackbox可用于使用存储在各种格式的文件、Windows CryptoAPI 中以及通过 PKCS#11 在硬件设备上的证书来签署 PDF 文档。

于 2013-07-18T09:40:28.473 回答
-2

iTextPdf是一个很好的 java API,处理 pdf 文件。还有一个很好的示例文档:http: //itextpdf.com/book/digitalsignatures20130304.pdf

还有一个签署PDF文档的例子

于 2013-07-18T09:24:19.693 回答