добавить цифровую подпись в PDF С#

Цифровые подписи используются для защиты документов PDF перед тем, как они будут переданы третьим лицам. Цифровая подпись документа PDF позволяет обнаруживать фальсификацию путем проверки документа с помощью цифровой подписи. Чтобы защитить PDF-документы программно с помощью цифровых подписей, в этой статье показано, как добавлять цифровые подписи в PDF-файлы на C#. Вы также узнаете, как проверять цифровые подписи в файлах PDF на C#.

С# .NET API для добавления цифровых подписей в PDF

Для добавления и проверки цифровых подписей в PDF-документах мы будем использовать Aspose.PDF for .NET API, который представляет собой мощный API-интерфейс для работы с PDF-файлами для создания, редактирования, преобразования и цифровой подписи PDF-документов. Вы можете скачать Aspose.PDF для .NET или установить его одним из следующих способов в Visual Studio:

Диспетчер пакетов NuGet

Цифровая подпись PDF в C#

Консоль диспетчера пакетов

PM> Install-Package Aspose.PDF

Добавить цифровую подпись в PDF на С#

Ниже приведены шаги для подписания документа PDF с помощью Aspose.PDF для .NET.

  • Создайте объект класса Document и инициализируйте его путем к PDF-документу.
  • Создайте объект класса PdfFileSignature и инициализируйте его объектом класса Document.
  • Создайте объект класса PKCS7 и инициализируйте его, указав путь к сертификату и пароль.
  • Создайте и инициализируйте объект класса DocMDPSignature для типа подписи MDP.
  • Создайте Прямоугольник для размещения подписи.
  • Цифровая подпись PDF-документа с помощью метода PdfFileSignature.Certify().
  • Сохраните документ с помощью метода PdfFileSignature.Save().

В следующем примере кода показано, как добавить цифровую подпись в документ PDF на C#.

// Загрузить PDF-документ
using (Document pdfDocument = new Document("Document.pdf"))
{
	using (PdfFileSignature signature = new PdfFileSignature(pdfDocument))
	{
		PKCS7 pkcs = new PKCS7("certificate.pfx", "1234567890"); // Use PKCS7/PKCS7Detached objects
		DocMDPSignature docMdpSignature = new DocMDPSignature(pkcs, DocMDPAccessPermissions.FillingInForms);
		System.Drawing.Rectangle rect = new System.Drawing.Rectangle(100, 100, 200, 100);
		// Установить внешний вид подписи
		signature.SignatureAppearance = @"aspose-logo.png";
		// Создайте любой из трех типов подписи
		signature.Certify(1, "Signature Reason", "Contact", "Location", true, rect, docMdpSignature);
		// Сохранить файл PDF с цифровой подписью
		signature.Save("Digitally Signed PDF.pdf");
	}
}

C# Добавить цифровую подпись в PDF с помощью сервера меток времени

Вы также можете добавить цифровую подпись в документ PDF с помощью сервера TimeStamp, предоставив свои данные с помощью класса TimestampSettings. В следующем примере кода показано, как поставить цифровую подпись PDF-документу с помощью сервера TimeStamp на C#.

// Загрузить PDF-документ
using (Document pdfDocument = new Document("Document.pdf"))
{
	using (PdfFileSignature signature = new PdfFileSignature(pdfDocument))
	{
		PKCS7 pkcs = new PKCS7("certificate.pfx", "WebSales"); // Use PKCS7/PKCS7Detached objects
		TimestampSettings timestampSettings = new TimestampSettings("https:\\your_timestamp_settings", "user:password"); // User/Password can be omitted
		pkcs.TimestampSettings = timestampSettings;
		System.Drawing.Rectangle rect = new System.Drawing.Rectangle(100, 100, 200, 100);
		// Создайте любой из трех типов подписи
		signature.Sign(1, "Signature Reason", "Contact", "Location", true, rect, pkcs);
		// Сохранить выходной PDF-файл
		signature.Save("Output.pdf");
	}
}

Проверка PDF с цифровой подписью в C#

Ниже приведены шаги для проверки цифровой подписи в документе PDF:

  • Создайте объект класса Document и инициализируйте его путем к документу PDF.
  • Создайте объект класса PdfFileSignature и инициализируйте его объектом класса Document.
  • Доступ ко всем подписям документа PDF.
  • Проверьте действительность подписи с помощью метода PdfFileSignature.VerifySigned().

В следующем примере кода показано, как проверить цифровую подпись в PDF с помощью C#.

// Загрузить PDF-документ
using (Document pdfDocument = new Document("Document.pdf"))
{
	using (PdfFileSignature signature = new PdfFileSignature(pdfDocument))
	{
		IList<string> sigNames = signature.GetSignNames();
		if (sigNames.Count > 0) // Any signatures?
		{
			if (signature.VerifySigned(sigNames[0] as string)) // Verify first one
			{
				if (signature.IsCertified) // Certified?
				{
					if (signature.GetAccessPermissions() == DocMDPAccessPermissions.FillingInForms) // Get access permission
					{
						// Сделай что-нибудь
					}
				}
			}
		}
	}
}

Попробуйте Aspose.PDF для .NET бесплатно

Вы можете получить бесплатную временную лицензию, чтобы попытаться использовать Aspose.PDF для .NET.

Вывод

В этой статье вы узнали, как добавлять цифровые подписи в файлы PDF в C#.NET. Кроме того, вы увидели, как программно проверять PDF-файлы с цифровой подписью на C#. Вы можете просто установить Aspose.PDF для .NET в свои приложения и беспрепятственно подписывать свои PDF-файлы цифровой подписью.

Статьи по Теме