# Добавить цифровые подписи к презентациям в PHP

> Узнайте, как подписывать цифровой подписью файлы PowerPoint и OpenDocument с помощью Aspose.Slides для PHP через Java. Защитите свои слайды за секунды с понятными примерами кода.

Source: https://docs.aspose.com/slides/ru/php-java/digital-signature-in-powerpoint/
Updated: 2026-01-14


**Цифровой сертификат** используется для создания защищённой паролем презентации PowerPoint, отмеченной как созданная определённой организацией или лицом. Цифровой сертификат можно получить, обратившись в уполномоченную организацию — центр сертификации. После установки цифрового сертификата в систему его можно использовать для добавления цифровой подписи к презентации через Файл -> Информация -> Защитить презентацию:

![todo:image_alt_text](https://lh5.googleusercontent.com/OPGhgHMb_L54PGJztP5oIO9zhxGXzhtnbcrC-z7yLUrc_NkRX1obBfwffXhPV1NWBiqhidiupCphixNGl25LkfQhliG6MCM6E-x16ZuQgMyLABC9bQ446ohMluZr6-ThgQLXCOyy)

Презентация может содержать более одной цифровой подписи. После того как цифровая подпись добавлена к презентации, в PowerPoint появляется специальное сообщение:

![todo:image_alt_text](https://lh3.googleusercontent.com/7ZfH7wElhwcvgJ_btF3C32zasBRbT1yA4tFOpnNnUm0q57ayBKJr0Pb43Oi4RgeCoOmwhyxxz_g8kw3H3Qw8Iqeaka5Xipip9cqvwbadY4E40D_NhXnUnbtdXSHFX6fjNm_UBvLJ)

Чтобы подписать презентацию или проверить подлинность подписей презентации, **Aspose.Slides API** предоставляет класс [**DigitalSignature**](https://reference.aspose.com/slides/php-java/aspose.slides/DigitalSignature), класс [**DigitalSignatureCollection**](https://reference.aspose.com/slides/php-java/aspose.slides/DigitalSignatureCollection) и метод [**Presentation::getDigitalSignatures**](https://reference.aspose.com/slides/php-java/aspose.slides/Presentation/#getDigitalSignatures). В настоящее время цифровые подписи поддерживаются только для формата PPTX.

## **Добавить цифровую подпись из PFX‑сертификата**
Ниже приведён пример кода, демонстрирующий, как добавить цифровую подпись из PFX‑сертификата:

1. Откройте файл PFX и передайте пароль PFX объекту [**DigitalSignature**](https://reference.aspose.com/slides/php-java/aspose.slides/DigitalSignature).
1. Добавьте созданную подпись к объекту презентации.
```php
  # Открытие файла презентации
  $pres = new Presentation();
  try {
    # Создать объект DigitalSignature с файлом PFX и паролем PFX
    $signature = new DigitalSignature("testsignature1.pfx", "testpass1");
    # Комментарий новой цифровой подписи
    $signature->setComments("Aspose.Slides digital signing test.");
    # Добавить цифровую подпись к презентации
    $pres->getDigitalSignatures()->add($signature);
    # Сохранить презентацию
    $pres->save("SomePresentationSigned.pptx", SaveFormat::Pptx);
  } finally {
    $pres->dispose();
  }
```


Теперь можно проверить, была ли презентация подписана цифровой подписью и не была изменена:
```php
  # Открыть презентацию
  $pres = new Presentation("SomePresentationSigned.pptx");
  try {
    if (java_values($pres->getDigitalSignatures()->size()) > 0) {
      $allSignaturesAreValid = true;
      echo("Signatures used to sign the presentation: ");
      # Check if all digital signatures are valid
      foreach($pres->getDigitalSignatures() as $signature) {
        echo($signature->getComments() . ", " . $signature->getSignTime()->toString() . " -- " . $signature->isValid() ? "VALID" : "INVALID");
        $allSignaturesAreValid &= $signature->isValid();
      }
      if ($allSignaturesAreValid) {
        echo("Presentation is genuine, all signatures are valid.");
      } else {
        echo("Presentation has been modified since signing.");
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }
```


## **FAQ**

**Могу ли я удалить существующие подписи из файла?**

Да. Коллекция цифровых подписей поддерживает [удаление отдельных элементов](https://reference.aspose.com/slides/php-java/aspose.slides/digitalsignaturecollection/removeat/) и [полную очистку](https://reference.aspose.com/slides/php-java/aspose.slides/digitalsignaturecollection/clear/); после сохранения файла в презентации не будет подписей.

**Файл становится «только для чтения» после подписи?**

Нет. Подпись сохраняет целостность и авторство, но не блокирует правки. Чтобы ограничить редактирование, комбинируйте её с ["Только для чтения" или паролем](/slides/ru/php-java/password-protected-presentation/).

**Будет ли подпись отображаться правильно в разных версиях PowerPoint?**

Подпись создаётся для контейнера OOXML (PPTX). Современные версии PowerPoint, поддерживающие подписи OOXML, корректно отображают статус таких подписей.
