Pure JavaScript と WebCrypto API を使用した PDF への署名
WebCrypto API は、Chrome や Firefox などの一般的なブラウザでのサポートが増えており、魅力的な機能を提供します。 PDF ドキュメントにデジタル署名するためのソリューション。 API は署名操作をサポートしていますが、ローカル キー ストアへのアクセスや外部暗号化デバイス (USB/スマートカードなど) の利用には制限があります。
これらの課題に対処するための実用的なアプローチは、PDF のハッシュを作成することです。ファイル全体をブラウザに送信するのではなく、署名用のファイルを作成します。このハッシュはブラウザに送信され、JavaScript は WebCrypto API を利用してブラウザ拡張機能を呼び出すことができます。次に、ブラウザ拡張機能は、ローカル アプリケーションまたは暗号デバイス (舞台裏で実行されている) と対話して、実際の署名操作を実行します。署名が完了すると、署名はブラウザに返され、その後元の PDF に埋め込むためにサーバーに送信されます。
便利なブラウザベースの署名シナリオのために、Signer.Digital は無料のブラウザ拡張機能と .NET ライブラリを提供しています。サーバー側プロセスとの統合。この拡張機能により、ユーザーのローカル キーストア、USB トークン、またはスマートカードを使用した安全なハッシュ署名が容易になります。拡張機能の JavaScript API を使用すると、ローカル署名ホストと簡単に対話できます。
//Calling the extension method to sign the hash SignerDigital.signPdfHash(hash, $("#CertThumbPrint").val(), "SHA-256") .then( function (signDataResp) { //Send signed data to server }, function (errmsg) { //Handle error message from extension } );
署名が成功すると、ブラウザ拡張機能は Base64 でエンコードされた PKCS7 署名を返します。これを使用して PDF に署名を挿入できます。適切なライブラリ。エラーが発生した場合、拡張機能は意味のあるエラー メッセージを提供します。
Signer.Digital は、ブラウザ内から包括的なデジタル署名ソリューションを提供します。このアプローチにより、ユーザーの秘密キーを危険にさらしたり、機密の PDF コンテンツを公共のインターネットに公開したりすることなく、堅牢かつ安全な署名が保証されます。
以上がPure JavaScript とブラウザ拡張機能を使用して PDF にデジタル署名するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。