Работа с цифрови подписи

Цифровият подпис е технологично приложение на електронните подписи за подписване и удостоверяване на подписа, за да се гарантира, че документът не е бил изменян от момента на подписването му. Всеки цифров подпис е уникален за всеки подпис, поради следването на протокола PKI за генериране на публични и частни ключове. Подписване на документ дигитално означава създаване на подпис с помощта на частния ключ на подписвача, където се използва математически алгоритъм за криптиране на генерирания хашиш.

Aspose.Words ви позволява да откривате, броите или проверявате съществуващи цифрови подписи, а също и да добавяте нов подпис към документа си, за да разберете каквото и да е подправяне в него. Можете също така да премахнете всички цифрови подписи от документ. Използвайте DigitalSignatureUtil клас за работа с цифрови подписи.

Тази статия обяснява как да се направи всичко това, за да се потвърди автентичността и целостта на цифров документ.

Поддържани формати

Aspose.Words ви позволява да работите с цифрови подписи върху документи DOC, OOXML и ODT и да подписвате генерирания документ в PDF или XPS формат.

Ограничения на цифровите подписи

Таблицата по-долу описва няколко ограничения, с които може да се сблъскате, докато работите с цифрови подписи чрез Aspose.Words, както и някои алтернативни варианти.

Ограничения Алтернативен вариант
Загуба на цифрови подписи на документ след зареждане и запазване. Следователно обработката на документ на сървър може да причини загуба на всички цифрови подписи без предизвестие Проверете дали документът има цифрови подписи и предприемете необходимите действия, ако има такива. Например, изпратете сигнал на клиентите, за да ги информират, че документът, който качват, съдържа цифрови подписи, които ще бъдат изгубени, ако бъде обработен
Aspose.Words подкрепя работата с макроси в документ. Но… Aspose.Words все още не подкрепя цифровите подписи на макроси Експортиране на документа обратно във формат Word и използване Microsoft Word да се добави цифров подпис към макросите

Откриване, преброяване и проверка на цифрови подписи

Aspose.Words ви позволява да откриете цифров подпис в документ, като използвате DetectFileFormat метод и HasDigitalSignature собственост. Струва си да се отбележи, че такава проверка ще открие само факта на подписа, но не и валидността му.

Документ може да бъде подписан повече от веднъж и това може да се направи от различни потребители. За да проверите валидността на цифровите подписи, трябва да ги заредите от документа с помощта на LoadSignatures метод и използване на IsValid собственост. Също така Aspose.Words ви позволява да брои набор от всички цифрови подписи в рамките на документ, използвайки Count собственост.

Всичко това осигурява ефективен и безопасен начин за проверка на документ за подпис, преди да го обработва.

Следният пример с код показва как да се засече наличието на цифрови подписи и да се проверят:

Създаване на цифров подпис

За да създадете цифров подпис, ще трябва да заредите удостоверение за подписване, което потвърждава самоличността. Когато изпращате цифрово подписан документ, изпращате и вашия сертификат и публичен ключ.

Aspose.Words ви позволява да създадете X.509 сертификат, дигитален сертификат, който използва международно приетия X.509 PKI стандарт, за да се провери дали публичният ключ принадлежи към подписа, включен в сертификата. За целта използвайте Create метод в рамките на CertificateHolder Клас.

Следващите раздели обясняват как да се добави цифров подпис, линия за подпис и как да се подпише генериран PDF документ.

Подпис на документ

Aspose.Words ви позволява да подпишете DOC, DOCX, XPS, или ОДТ документ дигитално с помощта на Sign метод и SignOptions имоти.

Следният пример за код показва как да се подпишат документи, като се използва притежател на сертификат и опции за подписване:

Добавяне на подпис

Линията на подпис е визуално представяне на цифров подпис в документ. Aspose.Words ви позволява да поставите линия за подпис с помощта на DocumentBuilder.InsertSignatureLine метод. Можете също така да зададете параметрите за това представяне с помощта на SignatureLineOptions Клас.

Например, снимката по-долу показва колко валидни и невалидни подписи могат да бъдат показани.

drawing drawing

Също така, ако документът съдържа линия за подпис и няма цифров подпис, има функция, която да поиска от потребителя да добави подпис.

Следният пример за код показва как да се подпише документ с личен сертификат и определен подпис:

Подпис на генериран PDF документ

Aspose.Words ви позволява да подпишете и да получите всички подробности за PDF документ с помощта на PdfDigitalSignatureDetails имоти.

Следният пример с код показва как да се подпише генериран PDF:

Изтегляне на стойността на цифровия подпис

Aspose.Words Също така предоставя възможност за извличане на стойността на цифровия подпис от цифров подписан документ като байт масив с помощта на SignatureValue собственост.

Следният пример за код показва как да се получи стойността на цифровия подпис като байт масив от документ:

Премахване на цифровите подписи

Aspose.Words ви позволява да премахнете всички цифрови подписи от подписан документ с помощта на RemoveAllSignatures метод.

Следният пример за код показва как да се зареди и премахне цифровите подписи от документ: