PDF의 디지털 서명을 사용하면 문서가 이해 관계자와 공유되기 전에 문서를 보호할 수 있습니다. 디지털 서명된 PDF 문서의 내용 위조를 쉽게 감지하고 확인할 수 있습니다. PDF 문서에 프로그래밍 방식으로 디지털 서명하기 위해 Java를 사용하여 PDF에 디지털 서명을 추가하고 확인하는 방법을 보여 드리겠습니다. PDF의 디지털 서명과 관련된 다음 시나리오를 다룹니다.

PDF 디지털 서명을 위한 Java 라이브러리

PDF에 디지털 서명을 추가하고 확인하기 위해 Java용 Aspose.PDF를 사용합니다. 다른 PDF 조작 기능과 함께 Aspose.PDF for Java를 사용하면 PDF에 디지털 서명을 원활하게 추가하고 확인할 수 있습니다. API의 JAR을 다운로드하거나 Maven 기반 애플리케이션에 설치할 수 있습니다.

저장소:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

의존:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>20.6</version>
</dependency>

Java를 사용하여 PDF에 디지털 서명 추가

다음은 Aspose.PDF for Java를 사용하여 PDF 문서에 디지털 서명을 추가하는 단계입니다.

  • Document 클래스의 인스턴스를 생성하고 PDF 문서의 경로로 초기화합니다.
  • PdfFileSignature 클래스를 초기화하고 여기에 Document 객체를 전달합니다.
  • PKCS7 클래스의 인스턴스를 생성하고 인증서의 경로와 비밀번호로 초기화합니다.
  • MDP 서명 유형에 대한 DocMDPSignature 클래스를 초기화합니다.
  • 사각형을 정의하여 문서 페이지에 서명을 배치합니다.
  • PdfFileSignature.Certify() 메서드를 사용하여 PDF 문서에 디지털 서명합니다.
  • PdfFileSignature.Save() 메서드를 사용하여 서명된 PDF를 저장합니다.

다음 코드 샘플은 Java를 사용하여 PDF에 디지털 서명하는 방법을 보여줍니다.

// 문서 개체 만들기
Document doc = new Document("input.pdf");
PdfFileSignature signature = new PdfFileSignature(doc);
PKCS7 pkcs = new PKCS7("certificate.pfx", "1234567890"); // Use PKCS7/PKCS7Detached objects
DocMDPSignature docMdpSignature = new DocMDPSignature(pkcs, DocMDPAccessPermissions.FillingInForms);
Rectangle rect = new Rectangle(100, 600, 400, 100);
// 서명 모양 설정
signature.setSignatureAppearance("aspose-logo.png"); 
// 세 가지 서명 유형 중 하나 만들기
signature.certify(1, "Signature Reason", "Contact", "Location", true, rect, docMdpSignature);
// 디지털 서명된 PDF 파일 저장
signature.save("Digitally Signed PDF.pdf");

Java를 사용하여 타임스탬프 서버로 PDF에 디지털 서명

Java용 Aspose.PDF를 사용하면 TimeStamp 서버를 사용하여 PDF에 디지털 서명을 추가할 수도 있습니다. 이를 위해 TimestampSettings 클래스가 사용됩니다. 다음 코드 샘플은 Java를 사용하여 TimeStamp 서버에서 PDF에 디지털 서명을 추가하는 방법을 보여줍니다.

// 문서 개체 만들기
Document doc = new Document("input.pdf");
PdfFileSignature signature = new PdfFileSignature(doc);
PKCS7 pkcs = new PKCS7("certificate.pfx", "1234567890"); // Use PKCS7/PKCS7Detached objects
TimestampSettings timestampSettings = new TimestampSettings("https:\\your_timestamp_settings", "user:password"); // User/Password can be omitted
pkcs.setTimestampSettings(timestampSettings); 
Rectangle rect = new Rectangle(100, 600, 400, 100);
// 서명 모양 설정
signature.setSignatureAppearance("aspose-logo.png"); 
// 세 가지 서명 유형 중 하나 만들기
signature.sign(1, "Signature Reason", "Contact", "Location", true, rect, pkcs);
// 디지털 서명된 PDF 파일 저장
signature.save("Digitally Signed PDF.pdf");

Java를 사용하여 PDF에서 디지털 서명 확인

디지털 서명된 PDF를 받으면 서명을 아주 쉽게 확인할 수 있습니다. 다음은 디지털 서명된 PDF를 확인하는 단계입니다.

다음 코드 샘플은 Java를 사용하여 디지털 서명된 PDF 문서를 확인하는 방법을 보여줍니다.

// PDF 파일 서명 만들기
PdfFileSignature pdfSign = new PdfFileSignature();
// PDF 바인딩
pdfSign.bindPdf("Digitally Signed PDF.pdf");
// 서명 이름을 사용하여 서명 확인
if (pdfSign.verifySigned("Signature1"))
{
	if (pdfSign.isCertified()) // Certified?
	{
		if (pdfSign.getAccessPermissions() == DocMDPAccessPermissions.FillingInForms) // Get access permission
		{
			// 뭔가 해
		}
	} 
}

결론

이 기사에서는 Java를 사용하여 PDF에 디지털 서명을 추가하는 방법을 배웠습니다. 또한 몇 단계 내에서 디지털 서명된 PDF 파일을 확인하는 방법을 살펴보았습니다. 문서GitHub에서 호스팅되는 소스 코드 샘플을 사용하여 Java PDF API에 대해 자세히 알아볼 수 있습니다.

또한보십시오