Цифровая подпись в PowerPoint
Цифровой сертификат используется для создания защищённой паролем презентации PowerPoint, отмеченной как созданная определённой организацией или лицом. Цифровой сертификат можно получить, обратившись к уполномоченной организации — центру сертификации. После установки цифрового сертификата в систему его можно использовать для добавления цифровой подписи к презентации через File -> Info -> Protect Presentation:
Презентация может содержать более одной цифровой подписи. После того как цифровая подпись будет добавлена к презентации, в PowerPoint появится специальное сообщение:
Для подписания презентации или проверки подлинности подписей презентации Aspose.Slides API предоставляет класс DigitalSignature, класс DigitalSignatureCollection и метод Presentation.getDigitalSignatures. В настоящее время цифровые подписи поддерживаются только для формата PPTX.
Добавление цифровой подписи из сертификата PFX
Ниже приведён пример кода, демонстрирующий, как добавить цифровую подпись из сертификата PFX:
- Откройте файл PFX и передайте пароль PFX объекту DigitalSignature.
- Добавьте созданную подпись к объекту презентации.
// Открытие файла презентации
var pres = new aspose.slides.Presentation();
try {
// Создание объекта DigitalSignature с файлом PFX и паролем PFX
var signature = new aspose.slides.DigitalSignature("testsignature1.pfx", "testpass1");
// Установить комментарий к новой цифровой подписи
signature.setComments("Aspose.Slides digital signing test.");
// Добавить цифровую подпись к презентации
pres.getDigitalSignatures().add(signature);
// Сохранить презентацию
pres.save("SomePresentationSigned.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
pres.dispose();
}
Теперь можно проверить, была ли презентация подписана цифровой подписью и не была изменена:
// Открыть презентацию
var pres = new aspose.slides.Presentation("SomePresentationSigned.pptx");
try {
if (pres.getDigitalSignatures().size() > 0) {
var allSignaturesAreValid = true;
console.log("Signatures used to sign the presentation: ");
// Проверить, являются ли все цифровые подписи действительными
for (let i = 0; i < pres.getDigitalSignatures().size(); i++) {
let signature = pres.getDigitalSignatures().get_Item(i);
console.log((((signature.getComments() + ", ") + signature.getSignTime().toString()) + " -- ") + (signature.isValid() ? "VALID" : "INVALID"));
allSignaturesAreValid &= signature.isValid();
}
if (allSignaturesAreValid) {
console.log("Presentation is genuine, all signatures are valid.");
} else {
console.log("Presentation has been modified since signing.");
}
}
} finally {
if (pres != null) {
pres.dispose();
}
}
FAQ
Можно ли удалить существующие подписи из файла?
Да. Коллекция цифровых подписей поддерживает removing individual items и clearing it entirely; после сохранения файла презентация не будет содержать подписей.
Становится ли файл «только для чтения» после подписи?
Нет. Подпись сохраняет целостность и авторство, но не блокирует редактирование. Чтобы ограничить редактирование, сочетайте её с “Read-only” or a password.
Отобразится ли подпись корректно в разных версиях PowerPoint?
Подпись создаётся для контейнера OOXML (PPTX). Современные версии PowerPoint, поддерживающие подписи OOXML, корректно отображают их статус.