Encryption 如何创建数字签名并保护PDF文件不受更改

Encryption 如何创建数字签名并保护PDF文件不受更改,encryption,pdf-generation,digital-signature,x509,Encryption,Pdf Generation,Digital Signature,X509,我正在尝试创建一种方法来加密和阻止PDF文件的任何更改 我发现了这个小片段,但有些东西对我来说不太清楚。这适用于名为“SPIRE”的库: 但我不明白它们对参数页意味着什么: PdfSignature signature=新的PdfSignature(Spire.Pdf.PdfDocumentBase文档,Spire.Pdf.PdfPageBase页,) 另一种方式。我在MSDN上找到了这个教程。 但这适用于XML文件。 这是否也适用于PDF,因为PDF是基于XML的 PDF不是基于XML的,您

我正在尝试创建一种方法来加密和阻止PDF文件的任何更改

我发现了这个小片段,但有些东西对我来说不太清楚。这适用于名为“SPIRE”的库:

但我不明白它们对参数页意味着什么:

PdfSignature signature=新的PdfSignature(Spire.Pdf.PdfDocumentBase文档,Spire.Pdf.PdfPageBase页,)

另一种方式。我在MSDN上找到了这个教程。 但这适用于XML文件。


这是否也适用于PDF,因为PDF是基于XML的

PDF不是基于XML的,您需要一个专门的函数来提供PDF的数字签名和加密。有几个用于签署PDF的库,但我不能说加密(特别是基于证书的加密)——我知道的唯一一个库是我们SecureBackbox产品的PDFBlackbox包。我也不知道SPIRE,就像@Eugene一样,我只能命名一个替代库,iText。有关示例,请查看中的Java示例,也可以从中获得。
String pfxPath = @"..\Demo.pfx";
            PdfCertificate digi = new PdfCertificate(pfxPath, "e-iceblue");
            PdfSignature signature = new PdfSignature(doc, page, digi, "demo");
            signature.ContactInfo = "Harry";
            signature.Certificated = true;
            signature.DocumentPermissions = PdfCertificationFlags.AllowFormFill;