>웹 프론트엔드 >JS 튜토리얼 >순수 JavaScript 및 브라우저 확장을 사용하여 PDF에 디지털 서명을 하려면 어떻게 해야 합니까?

순수 JavaScript 및 브라우저 확장을 사용하여 PDF에 디지털 서명을 하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-02 01:01:14486검색

How Can I Digitally Sign PDFs Using Pure JavaScript and Browser Extensions?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.