gpt4 book ai didi

pdf - 使用 itext 5.5.5 的数字签名

转载 作者:行者123 更新时间:2023-12-01 06:25:51 27 4
gpt4 key购买 nike

我是从 iText 升级的 5.2.1 到 iText 5.5.5

我使用 PdfStamper 和 PdfSignatureApperance 来应用数字签名。

这是我的代码片段。

PdfStamper stamper = PdfStamper.createSignature(reader, byteArrayOutputStream,'\0');
PdfSignatureAppearance appearance = stamper.getSignatureAppearance();
appearance.setCrypto(key, chain, null, PdfSignatureAppearance.WINCER_SIGNED);

从上面的代码中,有一些东西在当前版本中不存在。

1) 在版本 5.5.5 iText 我找不到 PdfSignatureApperance 类的“setCrypto”方法。

2) PdfSignatureApperance 不包含 WINCER_SIGNED。

如果有人可以帮助我使用新的替代方案应用数字签名。

谢谢。

最佳答案

事实上,自 iText 5.3 以来,签名 API 发生了一些变化,不再存在 setCrypto 方法。我阅读了布鲁诺的白皮书,这是对我有用的代码:

PdfReader reader = new PdfReader(new FileInputStream(file));
FileOutputStream fout = new FileOutputStream(new File(targetDir, fileName));
PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0');

PdfSignatureAppearance sap = stp.getSignatureAppearance();
sap.setReason(reason);
sap.setLocation("Pleber-Christ");

ExternalDigest digest = new BouncyCastleDigest();
BouncyCastleProvider provider = new BouncyCastleProvider();
ExternalSignature signature = new PrivateKeySignature(key, DigestAlgorithms.SHA256, provider.getName());
MakeSignature.signDetached(sap, digest, signature, chain, null, null, null, 0, CryptoStandard.CMS);

您必须将 bcprov-jdk15on-1.60.jar 和 bcpkix-jdk15on-1.60.jar 放在您的类路径中。您可能需要对其进行一些更改以满足您的需要。

关于pdf - 使用 itext 5.5.5 的数字签名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28753918/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com