对 PDF 文件进行数字签名

发布于 2024-12-05 04:56:06 字数 112 浏览 0 评论 0 原文

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

有人有不使用第三方组件的示例吗?我需要完成这件事,但最好能完全理解事情是如何完成的。

请举例 C# :)

I have a digital certificate that identifies a user. I need to use it to Digitally sign pdf files.

Does anyone have an example that does not uses a third party component? I need to get this done but it would be nice to fully understand how things are done.

C# Examples please :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

ぃ弥猫深巷。 2024-12-12 04:56:06

开源 iTextSharp 库将允许您执行此操作。这是帖子,解释如何对文件进行数字签名pdf 文件。如果您不想使用第三方库,那么您可以自己实现它,但这可能是一项艰巨的任务 ->您可以首先阅读 pdf 规范 (8.6MB)

The open source iTextSharp library will allow you to do this. Here's a post explaining how to digitally sign a pdf file. If you don't want to use a third party library then you can implement it yourself but it could be a tough task -> you can start by reading the pdf specification (8.6MB)

舞袖。长 2024-12-12 04:56:06

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

Proper PDF signing is a very sophisticated task. There exist a number of files that don't conform to the PDF specification (broken xrefs etc) and your code must handle all of them. Then various Acrobat versions treat certain things in signed fields differently. So if you need to do the task (rather than study how it works) you should rely on third-party solution, such as our PDFBlackbox components.

这样的小城市 2024-12-12 04:56:06

在不使用第三方组件的情况下对 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 文档 - 签名方法

Digitally signing a PDF document without using a third-party component entails a great deal of work and is generally best avoided.

Components do all the hard work for you, so you don't have to. You should find there are some excellent free PDF components available that will suit your needs.

The following example written in C# shows how simple it is to digitally sign a PDF document using ABCpdf:

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"));

Source: ABCpdf documentation - Sign method

水中月 2024-12-12 04:56:06

失去了我的第一个答案。可能想尝试 DocQ link text 他们有自己的证书,可以免费/廉价地为您密封和加密 PDF。他们还有一个可供您使用的 API。

Lost my first answer. May want to give DocQ a try to link text They have their own cert and can do this for you for free/cheap to seal and encrypt PDFs. They also have an API you can use.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文