PDF C#에 디지털 서명 추가

디지털 서명은 PDF 문서를 제3자와 공유하기 전에 보안을 유지하는 데 사용됩니다. PDF 문서에 디지털 서명을 하면 디지털 서명을 사용하여 문서를 확인하여 변조를 감지할 수 있습니다. 디지털 서명을 사용하여 프로그래밍 방식으로 PDF 문서를 보호하기 위해 이 문서에서는 C#의 PDF 파일에 디지털 서명을 추가하는 방법을 보여줍니다. C#에서 PDF 파일의 디지털 서명을 확인하는 방법도 배우게 됩니다.

PDF에 디지털 서명을 추가하는 C# .NET API

PDF 문서에 디지털 서명을 추가하고 확인하기 위해 PDF 문서를 생성, 편집, 변환 및 디지털 서명하기 위한 강력한 PDF 조작 API인 Aspose.PDF for .NET API를 사용합니다. .NET용 Aspose.PDF를 다운로드하거나 Visual Studio에서 다음 방법 중 하나를 사용하여 설치할 수 있습니다.

NuGet 패키지 관리자

C#에서 PDF 디지털 서명

패키지 관리자 콘솔

PM> Install-Package Aspose.PDF

C#에서 PDF에 디지털 서명 추가

다음은 .NET용 Aspose.PDF를 사용하여 PDF 문서에 서명하는 단계입니다.

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

다음 코드 샘플은 C#에서 PDF 문서에 디지털 서명을 추가하는 방법을 보여줍니다.

// PDF 문서 로드
using (Document pdfDocument = new Document("Document.pdf"))
{
	using (PdfFileSignature signature = new PdfFileSignature(pdfDocument))
	{
		PKCS7 pkcs = new PKCS7("certificate.pfx", "1234567890"); // Use PKCS7/PKCS7Detached objects
		DocMDPSignature docMdpSignature = new DocMDPSignature(pkcs, DocMDPAccessPermissions.FillingInForms);
		System.Drawing.Rectangle rect = new System.Drawing.Rectangle(100, 100, 200, 100);
		// 서명 모양 설정
		signature.SignatureAppearance = @"aspose-logo.png";
		// 세 가지 서명 유형 중 하나 만들기
		signature.Certify(1, "Signature Reason", "Contact", "Location", true, rect, docMdpSignature);
		// 디지털 서명된 PDF 파일 저장
		signature.Save("Digitally Signed PDF.pdf");
	}
}

C# 타임스탬프 서버를 사용하여 PDF에 디지털 서명 추가

TimestampSettings 클래스를 사용하여 세부 정보를 제공하여 TimeStamp 서버에서 PDF 문서에 디지털 서명을 추가할 수도 있습니다. 다음 코드 샘플은 C#에서 TimeStamp 서버를 사용하여 PDF 문서에 디지털 서명하는 방법을 보여줍니다.

// PDF 문서 로드
using (Document pdfDocument = new Document("Document.pdf"))
{
	using (PdfFileSignature signature = new PdfFileSignature(pdfDocument))
	{
		PKCS7 pkcs = new PKCS7("certificate.pfx", "WebSales"); // Use PKCS7/PKCS7Detached objects
		TimestampSettings timestampSettings = new TimestampSettings("https:\\your_timestamp_settings", "user:password"); // User/Password can be omitted
		pkcs.TimestampSettings = timestampSettings;
		System.Drawing.Rectangle rect = new System.Drawing.Rectangle(100, 100, 200, 100);
		// 세 가지 서명 유형 중 하나 만들기
		signature.Sign(1, "Signature Reason", "Contact", "Location", true, rect, pkcs);
		// 출력 PDF 파일 저장
		signature.Save("Output.pdf");
	}
}

C#에서 디지털 서명된 PDF 확인

다음은 PDF 문서에서 디지털 서명을 확인하는 단계입니다.

  • Document 클래스의 객체를 생성하고 PDF 문서의 경로로 초기화합니다.
  • PdfFileSignature 클래스의 객체를 생성하고 Document 클래스의 객체로 초기화합니다.
  • PDF 문서의 모든 서명에 액세스합니다.
  • PdfFileSignature.VerifySigned() 메서드를 사용하여 서명의 유효성을 확인합니다.

다음 코드 샘플은 C#을 사용하여 PDF의 디지털 서명을 확인하는 방법을 보여줍니다.

// PDF 문서 로드
using (Document pdfDocument = new Document("Document.pdf"))
{
	using (PdfFileSignature signature = new PdfFileSignature(pdfDocument))
	{
		IList<string> sigNames = signature.GetSignNames();
		if (sigNames.Count > 0) // Any signatures?
		{
			if (signature.VerifySigned(sigNames[0] as string)) // Verify first one
			{
				if (signature.IsCertified) // Certified?
				{
					if (signature.GetAccessPermissions() == DocMDPAccessPermissions.FillingInForms) // Get access permission
					{
						// 뭔가 해
					}
				}
			}
		}
	}
}

.NET용 Aspose.PDF를 무료로 사용해 보세요.

.NET용 Aspose.PDF를 사용하려면 무료 임시 라이센스를 얻을 수 있습니다.

결론

이 문서에서는 C#.NET에서 PDF 파일에 디지털 서명을 추가하는 방법을 배웠습니다. 또한 C#에서 프로그래밍 방식으로 디지털 서명된 PDF 파일을 확인하는 방법을 살펴보았습니다. 응용 프로그램에 Aspose.PDF for .NET을 설치하고 PDF 파일에 원활하게 디지털 서명할 수 있습니다.

관련 기사