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

Цифровият подпис е технологично приложение на електронните подписи за подписване и удостоверяване на подписа, за да се гарантира, че документът не е бил изменян от момента на подписването му. Всеки цифров подпис е уникален за всеки подпис, поради следването на протокола 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 или OTT документ дигитално с помощта на Sign метод и SignOptions имоти.

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

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

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

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

valid-digital-signature invalid-digital-signature

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

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

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

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

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

Снимката по-долу показва, че генерираният PDF документ е отворен в Adobe Acrobat дигиталният подпис се проверява като настоящ и валиден.

create-digital-signed-pdf-aspose-words-java

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

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

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

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

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

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