计算pdf文档摘要

时间:2013-05-31 12:36:41

标签: java cryptography itext bouncycastle

我要签署一份pdf文件。我刚刚看到一个使用itext的例子。

我使用KeyTool创建了证书。我签了一份文件。 PDF阅读器告诉我一切都很好,文档已签名。

当我看到代码时,我注意到:

ExternalDigest digest = new BouncyCastleDigest();
MakeSignature.signDetached(appearance, digest, pks, chain,null, null, null, 0, CryptoStandard.CMS);

我不自然而且一件事 - 哈希的PDF文件是摘要。计算文档哈希值的函数(例如SHA 256)t是 DIGEST 。但是在这个例子中我有

ExternalDigest digest = new BouncyCastleDigest();

是什么意思?它是pdf文档哈希?...

完整代码,来自itext文档:

public static void sign(String src, String dest, PrivateKey pk,String digestAlgorithm, String provider) {

        PdfReader reader = new PdfReader(src);
        FileOutputStream os = new FileOutputStream(dest);
        PdfStamper stamper = PdfStamper.createSignature(reader, os, '\0');
        PdfSignatureAppearance appearance = stamper.getSignatureAppearance();               
        appearance.setVisibleSignature(new Rectangle(0, 10,20, 15), 1, "sig");
        ExternalDigest digest = new BouncyCastleDigest();
        ExternalSignature signature = new PrivateKeySignature(pk, digestAlgorithm, provider);
        MakeSignature.signDetached(appearance, digest, signature, chain, null,null, null, 0, subfilter);


    }

1 个答案:

答案 0 :(得分:0)

谢谢mkl。

答案是:“该摘要参数包含一个可以计算摘要的对象,它不包含预先计算的摘要值”