使用 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中文网其他相关文章!