Digitální podpis ve formátu PDF vám umožňuje zabezpečit dokument před jeho sdílením se zúčastněnými stranami. Padělání v obsahu digitálně podepsaného dokumentu PDF lze snadno odhalit a ověřit. Chcete-li digitálně podepsat dokumenty PDF programově, ukážeme vám, jak přidat digitální podpisy do PDF pomocí Java. Také se dozvíte, jak programově ověřit digitálně podepsaný PDF.
Probereme následující scénáře související s digitálními podpisy v souborech PDF.
- Knihovna Java pro digitální podepisování PDF
- Přidejte digitální podpisy do PDF pomocí Java
- Digitálně podepisujte PDF pomocí serveru časových razítek pomocí Java
- Ověřte digitální podpis v PDF pomocí Java
Knihovna Java pro digitální podepisování PDF
Pro přidávání a ověřování digitálních podpisů v PDF budeme používat Aspose.PDF for Java. Spolu s dalšími funkcemi pro manipulaci s PDF vám Aspose.PDF for Java umožňuje bezproblémově přidávat a ověřovat digitální podpisy v PDF. JAR API si můžete stáhnout nebo si jej nainstalovat do své aplikace založené na Mavenu.
úložiště:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
Závislost:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>22.12</version>
</dependency>
Přidejte digitální podpis do PDF v Javě
Následují kroky pro přidání digitálního podpisu do PDF v Javě.
- Vytvořte instanci třídy Document a inicializujte ji s cestou k dokumentu PDF.
- Inicializujte třídu PdfFileSignature a předejte jí objekt Document.
- Vytvořte instanci třídy PKCS7 a inicializujte ji pomocí cesty certifikátu a hesla.
- Inicializujte třídu DocMDPSignature pro typ podpisu MDP.
- Definujte Rectangle pro umístění podpisu na stránku dokumentu.
- Digitálně podepište dokument PDF pomocí metody PdfFileSignature.Certify().
- Uložte podepsaný PDF pomocí metody PdfFileSignature.Save().
Následující ukázka kódu ukazuje, jak digitálně podepsat PDF pomocí Java.
// Vytvořte objekt dokumentu
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);
// Nastavení vzhledu podpisu
signature.setSignatureAppearance("aspose-logo.png");
// Vytvořte libovolný ze tří typů podpisu
signature.certify(1, "Signature Reason", "Contact", "Location", true, rect, docMdpSignature);
// Uložte digitálně podepsaný soubor PDF
signature.save("Digitally Signed PDF.pdf");
Java: Digitálně podepisujte PDF pomocí serveru časových razítek
Aspose.PDF for Java vám také umožňuje přidávat digitální podpisy do PDF pomocí serveru TimeStamp. K tomuto účelu slouží třída TimestampSettings. Následující ukázka kódu ukazuje, jak přidat digitální podpis do PDF pomocí serveru TimeStamp pomocí Java.
// Vytvořte objekt dokumentu
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);
// Nastavení vzhledu podpisu
signature.setSignatureAppearance("aspose-logo.png");
// Vytvořte libovolný ze tří typů podpisu
signature.sign(1, "Signature Reason", "Contact", "Location", true, rect, pkcs);
// Uložte digitálně podepsaný soubor PDF
signature.save("Digitally Signed PDF.pdf");
Ověřte digitální podpis v PDF pomocí Java
Když obdržíte digitálně podepsaný PDF, můžete jeho podpis ověřit poměrně snadno. Níže jsou uvedeny kroky k ověření digitálně podepsaného PDF.
- Vytvořte instanci třídy PdfFileSignature.
- Svažte soubor PDF pomocí metody PdfFileSigntature.bindPdf(string).
- Ověřte platnost podpisu pomocí metody PdfFileSignature.verifySigned().
Následující ukázka kódu ukazuje, jak ověřit digitálně podepsaný dokument PDF pomocí jazyka Java.
// Vytvořte podpis souboru PDF
PdfFileSignature pdfSign = new PdfFileSignature();
// Svázat PDF
pdfSign.bindPdf("Digitally Signed PDF.pdf");
// Ověřte podpis pomocí názvu podpisu
if (pdfSign.verifySigned("Signature1"))
{
if (pdfSign.isCertified()) // Certified?
{
if (pdfSign.getAccessPermissions() == DocMDPAccessPermissions.FillingInForms) // Get access permission
{
// Dělej něco
}
}
}
Bezplatná Java knihovna pro digitální podpisy ve formátu PDF
Můžete získat bezplatnou dočasnou licenci a přidávat digitální podpisy do souborů PDF bez jakýchkoli omezení.
Prozkoumejte Java PDF Library
Více o Java PDF API se můžete dozvědět pomocí dokumentace a také pomocí ukázek zdrojového kódu hostovaných na GitHub.
Závěr
V tomto článku jste se naučili, jak přidat digitální podpis do PDF pomocí Java. Kromě toho jsme viděli, jak ověřit digitálně podepsaný soubor PDF v několika krocích. Knihovnu můžete snadno nainstalovat a použít poskytnuté ukázky kódu ve vaší aplikaci.