додати цифровий підпис до PDF Java

Цифровий підпис у PDF-файлі дає змогу захистити документ, перш ніж його нададуть зацікавленим сторонам. Підробку у вмісті PDF-документа з цифровим підписом можна легко виявити та перевірити. Щоб програмно підписати документи PDF, ми покажемо вам, як додати цифрові підписи до PDF за допомогою Java. Крім того, ви дізнаєтесь, як програмно перевірити PDF-файл із цифровим підписом.

Ми розглянемо наступні сценарії, пов’язані з цифровими підписами у PDF-файлах.

Бібліотека Java для цифрового підпису PDF

Для додавання та перевірки цифрових підписів у PDF ми будемо використовувати Aspose.PDF for Java. Разом з іншими функціями роботи з PDF-файлами Aspose.PDF for Java дозволяє безперешкодно додавати та перевіряти цифрові підписи в PDF-файлах. Ви можете завантажити JAR API або встановити його у своїй програмі на основі Maven.

Репозиторій:

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

Залежність:

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

Додайте цифровий підпис до PDF-файлу в Java

Нижче наведено кроки, щоб додати цифровий підпис до PDF-файлу в Java.

  • Створіть екземпляр класу Document та ініціалізуйте його шляхом до документа PDF.
  • Ініціалізуйте клас PdfFileSignature і передайте йому об’єкт Document.
  • Створіть екземпляр класу PKCS7 та ініціалізуйте його шляхом до сертифіката та паролем.
  • Ініціалізувати клас DocMDPSignature для типу підпису MDP.
  • Визначте прямокутник, щоб розмістити підпис на сторінці документа.
  • Цифровий підпис PDF-документа за допомогою методу PdfFileSignature.Certify().
  • Збережіть підписаний PDF за допомогою методу PdfFileSignature.Save().

У наведеному нижче прикладі коду показано, як цифрово підписати PDF-файл за допомогою Java.

// Створіть об’єкт «Документ».
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);
// Встановити зовнішній вигляд підпису
signature.setSignatureAppearance("aspose-logo.png"); 
// Створіть будь-який із трьох типів підпису
signature.certify(1, "Signature Reason", "Contact", "Location", true, rect, docMdpSignature);
// Збережіть PDF-файл із цифровим підписом
signature.save("Digitally Signed PDF.pdf");

Java: цифровий підпис PDF за допомогою сервера часових позначок

Aspose.PDF for Java також дозволяє додавати цифрові підписи до PDF за допомогою сервера TimeStamp. Для цього використовується клас TimestampSettings. У наведеному нижче прикладі коду показано, як додати цифровий підпис до PDF-файлу за допомогою сервера TimeStamp за допомогою Java.

// Створіть об’єкт «Документ».
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);
// Встановити зовнішній вигляд підпису
signature.setSignatureAppearance("aspose-logo.png"); 
// Створіть будь-який із трьох типів підпису
signature.sign(1, "Signature Reason", "Contact", "Location", true, rect, pkcs);
// Збережіть PDF-файл із цифровим підписом
signature.save("Digitally Signed PDF.pdf");

Перевірте цифровий підпис у PDF за допомогою Java

Коли ви отримуєте PDF-файл із цифровим підписом, ви можете досить легко перевірити його підпис. Нижче наведено кроки для перевірки PDF-файлу з цифровим підписом.

У наведеному нижче прикладі коду показано, як перевірити PDF-документ із цифровим підписом за допомогою Java.

// Створення підпису файлу PDF
PdfFileSignature pdfSign = new PdfFileSignature();
// Зв'язати PDF
pdfSign.bindPdf("Digitally Signed PDF.pdf");
// Перевірте підпис за допомогою імені підпису
if (pdfSign.verifySigned("Signature1"))
{
	if (pdfSign.isCertified()) // Certified?
	{
		if (pdfSign.getAccessPermissions() == DocMDPAccessPermissions.FillingInForms) // Get access permission
		{
			// Робити щось
		}
	} 
}

Безкоштовна бібліотека Java для цифрових підписів у форматі PDF

Ви можете отримати безкоштовну тимчасову ліцензію і додавати цифрові підписи до файлів PDF без будь-яких обмежень.

Дослідіть бібліотеку Java PDF

Ви можете дізнатися більше про Java PDF API, використовуючи документацію, а також зразки вихідного коду, розміщені на GitHub.

Висновок

У цій статті ви дізналися, як додати цифровий підпис до PDF-файлу за допомогою Java. Крім того, ми побачили, як перевірити PDF-файл із цифровим підписом за кілька кроків. Ви можете легко встановити бібліотеку та використовувати надані зразки коду у своїй програмі.

Дивись також