Mit der digitalen Signatur in PDF können Sie das Dokument sichern, bevor es mit den Beteiligten geteilt wird. Das Fälschen des Inhalts eines digital signierten PDF Dokuments kann leicht erkannt und überprüft werden. Um die PDF Dokumente programmgesteuert digital zu signieren, zeige ich Ihnen, wie Sie digitale Signaturen in PDF mit Java hinzufügen und überprüfen. Wir behandeln die folgenden Szenarien im Zusammenhang mit digitalen Signaturen in PDFs.

Java Bibliothek zum digitalen Signieren von PDF

Zum Hinzufügen und Überprüfen digitaler Signaturen in PDF verwenden wir Aspose.PDF for Java. Zusammen mit anderen PDF Bearbeitungsfunktionen können Sie mit Aspose.PDF for Java digitale Signaturen in PDFs nahtlos hinzufügen und überprüfen. Sie können das JAR der API herunterladen oder es in Ihrer Maven-basierten Anwendung installieren lassen.

Repository:

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

Abhängigkeit:

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

Hinzufügen einer digitalen Signatur zu einem PDF mit Java

Im Folgenden finden Sie die Schritte zum Hinzufügen einer digitalen Signatur zu einem PDF Dokument mit Aspose.PDF for Java.

  • Erstellen Sie eine Instanz der Klasse Document und initialisieren Sie sie mit dem Pfad des PDF Dokuments.
  • Initialisieren Sie die Klasse PdfFileSignature und übergeben Sie ihr das Document objekt.
  • Erstellen Sie eine Instanz der Klasse PKCS7 und initialisieren Sie sie mit dem Pfad eines Zertifikats und dem Kennwort.
  • Initialisieren Sie die Klasse DocMDPSignature für den MDP-Signaturtyp.
  • Definieren Sie ein Rechteck, um die Unterschrift auf der Seite des Dokuments zu platzieren.
  • PDF Dokument mit der methode PdfFileSignature.Certify() digital signieren.
  • Speichern Sie das signierte PDF mit der methode PdfFileSignature.Save().

Das folgende Codebeispiel zeigt, wie Sie eine PDF Datei mit Java digital signieren.

// Erstellen Sie ein Document objekt
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);
// Signatur-Erscheinungsbild festlegen
signature.setSignatureAppearance("aspose-logo.png"); 
// Erstellen Sie einen der drei Signaturtypen
signature.certify(1, "Signature Reason", "Contact", "Location", true, rect, docMdpSignature);
// Digital signierte PDF Datei speichern
signature.save("Digitally Signed PDF.pdf");

PDF digital mit einem Timestamp-Server unter Verwendung von Java signieren

Mit Aspose.PDF for Java können Sie mit dem TimeStamp-Server auch digitale Signaturen zu PDF hinzufügen. Zu diesem Zweck wird die Klasse TimestampSettings verwendet. Das folgende Codebeispiel zeigt, wie Sie einer PDF Datei mit einem TimeStamp-Server unter Verwendung von Java eine digitale Signatur hinzufügen.

// Erstellen Sie ein Document objekt
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);
// Signatur-Erscheinungsbild festlegen
signature.setSignatureAppearance("aspose-logo.png"); 
// Erstellen Sie einen der drei Signaturtypen
signature.sign(1, "Signature Reason", "Contact", "Location", true, rect, pkcs);
// Digital signierte PDF Datei speichern
signature.save("Digitally Signed PDF.pdf");

Überprüfen Sie die digitale Signatur in einem PDF mit Java

Wenn Sie ein digital signiertes PDF erhalten, können Sie dessen Signatur ganz einfach überprüfen. Im Folgenden sind die Schritte zum Überprüfen einer digital signierten PDF Datei aufgeführt.

Das folgende Codebeispiel zeigt, wie Sie ein digital signiertes PDF Dokument mit Java überprüfen.

// PDF Dateisignatur erstellen
PdfFileSignature pdfSign = new PdfFileSignature();
// PDF binden
pdfSign.bindPdf("Digitally Signed PDF.pdf");
// Überprüfen Sie die Signatur anhand des Signaturnamens
if (pdfSign.verifySigned("Signature1"))
{
	if (pdfSign.isCertified()) // Certified?
	{
		if (pdfSign.getAccessPermissions() == DocMDPAccessPermissions.FillingInForms) // Get access permission
		{
			// Etwas tun
		}
	} 
}

Fazit

In diesem Artikel haben Sie gelernt, wie Sie einer PDF Datei mit Java eine digitale Signatur hinzufügen. Außerdem haben wir gesehen, wie man in wenigen Schritten eine digital signierte PDF Datei verifiziert. Sie können mehr über die Java PDF API erfahren, indem Sie die Dokumentation sowie die auf GitHub gehosteten Quellcodebeispiele verwenden.

Siehe auch