Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Menandatangani PDF Secara Digital Menggunakan JavaScript dan API WebCrypto Dengan Selamat?

Bagaimanakah Saya Boleh Menandatangani PDF Secara Digital Menggunakan JavaScript dan API WebCrypto Dengan Selamat?

Barbara Streisand
Barbara Streisandasal
2024-11-26 12:22:15371semak imbas

How Can I Digitally Sign PDFs Using JavaScript and WebCrypto API Securely?

Menandatangani PDF dengan JavaScript Biasa dan API WebCrypto

Menandatangani dokumen PDF secara digital menggunakan API WebCrypto dan JavaScript tulen memberikan cabaran tertentu. Walaupun API WebCrypto telah berkembang dan mendapat sokongan dalam penyemak imbas seperti Chrome dan Firefox, ia tidak mempunyai akses terus ke kedai utama atau peranti crypto tempatan.

Untuk menandatangani PDF yang selamat, tidak digalakkan untuk menghantar keseluruhan fail PDF ke penyemak imbas atau pelayan API. Mencipta cincang PDF untuk menandatangani dan menghantar hanya cincang ke penyemak imbas ialah pendekatan yang disyorkan.

Pertimbangan Menandatangani Berasaskan Penyemak Imbas

Untuk menangani batasan API WebCrypto dalam mengakses stor kunci tempatan, sambungan penyemak imbas seperti Signer.Digital menyediakan penyelesaian. Sambungan itu merapatkan jurang antara penyemak imbas dan aplikasi hos tempatan yang berjalan pada sistem pengguna. Ini membolehkan untuk mengakses stor kunci tempatan, USB kripto atau kad pintar.

Menggunakan sambungan Signer.Digital, kod JavaScript boleh memanggil kaedah untuk menandatangani cincang dokumen. Aplikasi hos kemudiannya menggunakan sijil pengguna melalui kedai Sijil Microsoft (pada Windows) atau perpustakaan PKCS#11 (di Linux) untuk mendapatkan tandatangan. Sambungan itu mengembalikan tandatangan pkcs7 yang dikodkan Base64, yang boleh disuntik ke dalam PDF.

Fungsi Hos Sambungan Penyemak Imbas

Kod JavaScript dalam penyemak imbas boleh menggunakan kaedah berikut daripada Pelayar Signer.Digital Hos Sambungan:

  • signPdfHash(hash, certThumbPrint, hashAlgorithm)
  • signHashCAdESBr(hash, certThumbPrint, hashAlgorithm) (untuk tandatangan ICP-Brazil)
  • signCAdESEg(hash, certThumbPrint, hashAlgorithm) (untuk tandatangan ICP-Brazil)
signCAdESEg(hash, certThumbPrint-CAD) tandatangan)

Kaedah ini membolehkan JavaScript mendapatkan tandatangan daripada kedai kunci tempatan dan peranti crypto tanpa menjejaskan keselamatan kunci persendirian.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menandatangani PDF Secara Digital Menggunakan JavaScript dan API WebCrypto Dengan Selamat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn