ホームページ > ウェブフロントエンド > jsチュートリアル > 直接キーにアクセスせずに、JavaScript を使用して PDF にデジタル署名するにはどうすればよいですか?

直接キーにアクセスせずに、JavaScript を使用して PDF にデジタル署名するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-03 22:50:11
オリジナル
970 人が閲覧しました

How Can I Digitally Sign a PDF Using JavaScript Without Direct Key Access?

プレーン JavaScript で PDF に署名する

課題:

WebCrypto API を使用して PDF ドキュメントにデジタル署名することには課題が生じます。現在の API ではキー ストレージやローカル暗号化への直接アクセスが許可されていないため、

解決策:

この制限を回避するには、次のことをお勧めします。

  1. PDF のハッシュを作成します。 ドキュメント全体を送信する代わりに、PDF ファイルのハッシュを生成します。
  2. ブラウザ拡張機能を使用する: Signer.Digital などのブラウザ拡張機能をインストールして、ローカル キーストア (例: Windows 証明書ストアや Linux 上の PKCS#11) にアクセスします。 ).
  3. ハッシュに署名します: を使用します拡張機能の API は、ローカル キーストアから取得した秘密キーを使用してハッシュされた PDF に署名します。
  4. 署名の受信: ブラウザ拡張機能は、適切な形式 (例: PKCS7) で署名を返します。 .
  5. PDF に署名を挿入: サーバー側で、適切なライブラリを使用します。 (または Signer.Digital によって提供されるもの) して、元の PDF ファイルに署名を挿入し直します。

Signer.Digital Extension:

署名者。デジタル ブラウザ拡張機能は、署名プロセスを実行するために必要な機能を提供します。

  • 関数: SignerDigital.signPdfHash(hash, certThumbPrint, hasshingAlgo)
  • パラメータ:

    • hash: PDF のハッシュBase64 でエンコードされた文字列
    • certThumbPrint: 署名に使用する証明書の拇印
    • hashingAlgo: PDF をハッシュするために使用されるアルゴリズム (例: "SHA256")

例:

// Assuming hash is a Base64-encoded PDF hash
SignerDigital.signPdfHash(hash, $("#CertThumbPrint").val(), "SHA-256")
.then(
   function (signDataResp) {
      // Send signDataResp (contains Base64 PKCS7 signature) to server
   },
   function (errmsg) {
      // Handle error
   }
);
ログイン後にコピー

注:

  • 秘密キーは、ローカルの証明書設定に保存されます。
  • 将来的には、WebCrypto API の進歩により、キー ストレージへの直接アクセスが可能になり、ブラウザ拡張機能が不要になる可能性があります。

以上が直接キーにアクセスせずに、JavaScript を使用して PDF にデジタル署名するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート