Pure JavaScript 및 WebCrypto API를 사용하여 PDF에 서명
Chrome 및 Firefox와 같은 인기 브라우저에서 지원이 증가하면서 WebCrypto API는 매력적인 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 콘텐츠를 공용 인터넷에 노출시키지 않고 강력하고 안전한 서명을 보장합니다.
위 내용은 순수 JavaScript 및 브라우저 확장을 사용하여 PDF에 디지털 서명을 하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!