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
- Lägg till digitala signaturer till PDF med Java
- Signera PDF digitalt med en tidsstämpelserver med Java
- Verifiera digital signatur i en PDF med Java
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.
- Skapa en instans av klassen PdfFileSignature.
- Bind PDF-filen med metoden PdfFileSigntature.bindPdf(string).
- Verifiera giltigheten av signaturen med metoden PdfFileSignature.verifySigned().
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.