web-dev-qa-db-ja.com

デジタル署名PDFファイル

ユーザーを識別するデジタル証明書があります。 PDFファイルにデジタル署名するために使用する必要があります。

サードパーティのコンポーネントを使用しない例はありますか?私はこれを成し遂げる必要がありますが、物事がどのように成されるかを完全に理解することは素晴らしいことです。

C#の例をご覧ください:)

53
Sergio

オープンソース iTextSharp ライブラリを使用すると、これを行うことができます。 post は、pdfファイルにデジタル署名する方法を説明しています。サードパーティのライブラリを使用したくない場合は、それを自分で実装できますが、それは困難なタスクになる可能性があります-> pdf specification (8.6MB)

39
Darin Dimitrov

適切なPDF署名はvery高度なタスクです。=に準拠しないファイルが多数存在します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ドキュメント-署名方法

6
AffineMesh

最初の答えを失いました。 DocQに link text を試してもらいたいと思うかもしれません。彼らは独自の証明書を持っているので、PDFを封印して暗号化するために無料/格安でこれを行うことができます。また、使用できるAPIもあります。

1
user337658