对PDF文件进行数字签名

2024-06-24 13:43:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个识别用户的数字证书。我需要用它对pdf文件进行数字签名。

有没有人举了一个不使用第三方组件的例子?我需要完成这件事,但如果能完全理解事情是如何完成的就好了。

C#请举例:)


Tags: 文件用户pdf组件事情例子数字签名举例
3条回答

开源的iTextSharp库将允许您这样做。这里有一个post解释如何对pdf文件进行数字签名。如果您不想使用第三方库,那么您可以自己实现它,但这可能是一项艰巨的任务->;您可以从阅读pdf specification(8.6MB)开始

正确的PDF签名是一项非常复杂的任务。存在许多不符合PDF规范的文件(损坏的外部参照等),您的代码必须处理所有这些文件。然后,不同的Acrobat版本对签名字段中的某些内容进行不同的处理。因此,如果您需要完成任务(而不是研究它是如何工作的),您应该依赖第三方解决方案,比如我们的PDFBlackbox组件。

在不使用第三方组件的情况下对PDF文档进行数字签名需要做大量工作,通常最好避免这样做。

组件为您完成所有的艰苦工作,所以您不必。您应该会发现有一些优秀的免费PDF组件可以满足您的需要。

以下用C#编写的示例显示了使用ABCpdf对PDF文档进行数字签名是多么简单:

Doc theDoc = new Doc();
theDoc.Read(Server.MapPath("../Rez/Authorization.pdf"));
Signature theSig = (Signature)theDoc.Form["Signature"];
theSig.Location = "Washington";
theSig.Reason = "Schedule Agreed";
theSig.Sign(Server.MapPath("../Rez/JohnSmith.pfx"), "111111");
theDoc.Save(Server.MapPath("Signed.pdf"));

来源:ABCpdf documentation - Sign method

相关问题 更多 >