lägg till digital signatur till PDF Java

Digital signatur i PDF låter dig säkra dokumentet innan det delas med intressenterna. Förfalskning av innehållet i ett digitalt signerat PDF-dokument kan lätt upptäckas och verifieras. För att digitalt signera PDF-dokumenten programmatiskt visar vi dig hur du lägger till digitala signaturer till PDF med Java. Du kommer också att lära dig hur du verifierar en digitalt signerad PDF-fil programmatiskt.

Vi kommer att täcka följande scenarier relaterade till digitala signaturer i PDF-filer.

Java-bibliotek för att digitalt signera PDF

För att lägga till och verifiera digitala signaturer i PDF kommer vi att använda Aspose.PDF för Java. Tillsammans med andra PDF-manipuleringsfunktioner låter Aspose.PDF för Java dig lägga till och verifiera digitala signaturer i PDF-filer sömlöst. Du kan ladda ner JAR för API:t eller få den installerad i din Maven-baserade applikation.

Förvar:

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

Beroende:

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

Lägg till digital signatur till en PDF-fil i Java

Följande är stegen för att lägga till en digital signatur i en PDF-fil i Java.

  • Skapa en instans av klassen Document och initiera den med PDF-dokumentets sökväg.
  • Initiera klassen PdfFileSignature och skicka dokumentobjektet till den.
  • Skapa en instans av klassen PKCS7 och initiera den med ett certifikats sökväg och lösenordet.
  • Initiera klassen DocMDPSignature för MDP-signaturtypen.
  • Definiera en Rektangel för att placera signaturen på dokumentets sida.
  • Signera PDF-dokument digitalt med metoden PdfFileSignature.Certify().
  • Spara den signerade PDF-filen med metoden PdfFileSignature.Save().

Följande kodexempel visar hur man digitalt signerar en PDF med Java.

// Skapa ett dokumentobjekt
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);
// Ställ in signaturutseende
signature.setSignatureAppearance("aspose-logo.png"); 
// Skapa någon av de tre signaturtyperna
signature.certify(1, "Signature Reason", "Contact", "Location", true, rect, docMdpSignature);
// Spara digitalt signerad PDF-fil
signature.save("Digitally Signed PDF.pdf");

Java: Signera PDF digitalt med en tidsstämpelserver

Aspose.PDF för Java låter dig också lägga till digitala signaturer till PDF med TimeStamp-servern. Klassen TimestampSettings används för detta ändamål. Följande kodexempel visar hur man lägger till digital signatur till en PDF-fil med en TimeStamp-server med Java.

// Skapa ett dokumentobjekt
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);
// Ställ in signaturutseende
signature.setSignatureAppearance("aspose-logo.png"); 
// Skapa någon av de tre signaturtyperna
signature.sign(1, "Signature Reason", "Contact", "Location", true, rect, pkcs);
// Spara digitalt signerad PDF-fil
signature.save("Digitally Signed PDF.pdf");

Verifiera digital signatur i en PDF med Java

När du får en digitalt signerad PDF kan du verifiera dess signatur ganska enkelt. Följande är stegen för att verifiera en digitalt signerad PDF.

Följande kodexempel visar hur du verifierar ett digitalt signerat PDF-dokument med Java.

// Skapa PDF-filsignatur
PdfFileSignature pdfSign = new PdfFileSignature();
// Bind PDF
pdfSign.bindPdf("Digitally Signed PDF.pdf");
// Verifiera signatur med signaturnamn
if (pdfSign.verifySigned("Signature1"))
{
	if (pdfSign.isCertified()) // Certified?
	{
		if (pdfSign.getAccessPermissions() == DocMDPAccessPermissions.FillingInForms) // Get access permission
		{
			// Göra någonting
		}
	} 
}

Gratis Java-bibliotek för digitala signaturer i PDF

Du kan få en gratis tillfällig licens och lägga till digitala signaturer till PDF-filer utan några begränsningar.

Utforska Java PDF-bibliotek

Du kan lära dig mer om Java PDF API med hjälp av dokumentationen samt källkodsexemplen som finns på GitHub.

Slutsats

I den här artikeln har du lärt dig hur du lägger till en digital signatur i en PDF med Java. Dessutom har vi sett hur man verifierar en digitalt signerad PDF-fil inom några få steg. Du kan enkelt installera biblioteket och använda de medföljande kodexemplen i din applikation.

Se även