使用JavaScript 和WebCrypto API 簽署PDF
使用JavaScript 和WebCrypto API 對PDF 文件進行數位簽章一直是一項廣受歡迎的功能,特別是Chrome 和Firefox 中對WebCrypto 的支援得到了改進。但是,有關此主題的資訊有限。
WebCrypto API 目前在存取金鑰儲存和本機加密設備方面有限制。此外,將整個 PDF 檔案傳送到瀏覽器或簽署 API 伺服器會引發安全性問題。
最佳實踐是建立 PDF 的雜湊值,將該雜湊值傳送到瀏覽器,然後使用 JavaScript 呼叫應用程式透過瀏覽器擴充在本機系統上。然後,該本機應用程式可以存取密鑰儲存並產生簽名。簽署的雜湊值可以返回伺服器,在伺服器中可以將其重新註入到 PDF 中。
促進此過程的解決方案是 Signer.Digital,它是瀏覽器擴展,可提供對本機金鑰儲存的存取並允許JavaScript 對雜湊進行簽署。然後將簽署的雜湊值傳送回伺服器,然後將其新增至 PDF 中。
工作機制
程式碼範例
// Sign the hash using the browser extension SignerDigital.signPdfHash(hash, $("#CertThumbPrint").val(), "SHA-256") .then( function (signDataResp) { // Success: Send signed data to the server }, function (errmsg) { // Failure: Handle error } );
透過整合Signer.Digital,開發人員可以安全且有效率地對PDF 文件進行數位簽名,即使使用WebCrypto API 的限制。
以上是如何使用 JavaScript 和 WebCrypto API 安全地簽署 PDF?的詳細內容。更多資訊請關注PHP中文網其他相關文章!