PDF’deki Dijital İmza, belgeyi paydaşlarla paylaşılmadan önce korumanıza olanak tanır. Dijital olarak imzalanmış bir PDF belgesinin içeriğinde sahtecilik kolayca tespit edilebilir ve doğrulanabilir. PDF belgelerini programlı olarak dijital olarak imzalamak için, Java kullanarak PDF’de dijital imzaları nasıl ekleyeceğinizi ve doğrulayacağınızı göstereceğim. PDF’lerdeki dijital imzalarla ilgili aşağıdaki senaryoları ele alacağız.

PDF’yi Dijital Olarak İmzalamak için Java Kitaplığı

PDF’ye dijital imza eklemek ve doğrulamak için Aspose.PDF for Java kullanacağız. Diğer PDF işleme özelliklerinin yanı sıra Aspose.PDF for Java, PDF’lere sorunsuz bir şekilde dijital imzalar eklemenizi ve doğrulamanızı sağlar. API’nin JAR’ını indirebilir veya Maven tabanlı uygulamanıza kurmasını sağlayabilirsiniz.

Depo:

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

Bağımlılık:

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

Java kullanarak bir PDF’ye Dijital İmza ekleyin

Aspose.PDF for Java kullanarak bir PDF belgesine dijital imza ekleme adımları aşağıdadır.

  • Document sınıfının bir örneğini oluşturun ve bunu PDF belgesinin yolu ile başlatın.
  • PdfFileSignature sınıfını başlatın ve ona Document nesnesini iletin.
  • PKCS7 sınıfının bir örneğini oluşturun ve onu bir sertifikanın yolu ve parolasıyla başlatın.
  • MDP imza türü için DocMDPSignature sınıfını başlatın.
  • İmzayı belgenin sayfasına yerleştirmek için bir Dikdörtgen tanımlayın.
  • PdfFileSignature.Certify() yöntemini kullanarak PDF belgesini dijital olarak imzalayın.
  • İmzalı PDF’yi PdfFileSignature.Save() yöntemini kullanarak kaydedin.

Aşağıdaki kod örneği, Java kullanarak bir PDF’nin dijital olarak nasıl imzalanacağını gösterir.

// Belge nesnesi oluşturma
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);
// İmza görünümünü ayarla
signature.setSignatureAppearance("aspose-logo.png"); 
// Üç imza türünden herhangi birini oluşturun
signature.certify(1, "Signature Reason", "Contact", "Location", true, rect, docMdpSignature);
// Dijital olarak imzalanmış PDF dosyasını kaydedin
signature.save("Digitally Signed PDF.pdf");

Java kullanarak bir Zaman Damgası Sunucusu ile PDF’yi Dijital Olarak İmzalayın

Aspose.PDF for Java ayrıca TimeStamp sunucusuyla PDF’ye dijital imzalar eklemenizi sağlar. TimestampSettings sınıfı bu amaç için kullanılır. Aşağıdaki kod örneği, Java kullanarak bir TimeStamp sunucusuyla bir PDF’ye nasıl dijital imza ekleneceğini gösterir.

// Belge nesnesi oluşturma
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);
// İmza görünümünü ayarla
signature.setSignatureAppearance("aspose-logo.png"); 
// Üç imza türünden herhangi birini oluşturun
signature.sign(1, "Signature Reason", "Contact", "Location", true, rect, pkcs);
// Dijital olarak imzalanmış PDF dosyasını kaydedin
signature.save("Digitally Signed PDF.pdf");

Java kullanarak bir PDF’de Dijital İmzayı Doğrulayın

Dijital olarak imzalanmış bir PDF aldığınızda imzasını kolayca doğrulayabilirsiniz. Aşağıda, dijital olarak imzalanmış bir PDF’yi doğrulama adımları yer almaktadır.

Aşağıdaki kod örneği, dijital olarak imzalanmış bir PDF belgesinin Java kullanılarak nasıl doğrulanacağını gösterir.

// PDF Dosya İmzası Oluşturun
PdfFileSignature pdfSign = new PdfFileSignature();
// PDF'yi bağla
pdfSign.bindPdf("Digitally Signed PDF.pdf");
// İmza adını kullanarak imzayı doğrulayın
if (pdfSign.verifySigned("Signature1"))
{
	if (pdfSign.isCertified()) // Certified?
	{
		if (pdfSign.getAccessPermissions() == DocMDPAccessPermissions.FillingInForms) // Get access permission
		{
			// Bir şey yap
		}
	} 
}

Çözüm

Bu makalede, Java kullanarak bir PDF’ye nasıl dijital imza ekleyeceğinizi öğrendiniz. Ek olarak, dijital olarak imzalanmış bir PDF dosyasını birkaç adımda nasıl doğrulayacağımızı gördük. Belgeleri ve GitHub üzerinde barındırılan kaynak kodu örneklerini kullanarak Java PDF API hakkında daha fazla bilgi edinebilirsiniz.

Ayrıca bakınız