Защита презентаций паролем в Python
Обзор
Открывающий пароль шифрует презентацию. Правильный пароль необходим для загрузки и просмотра содержимого презентации, поэтому эта защита обеспечивает конфиденциальность.
Открывающий пароль отличается от пароля защиты от записи. Защита от записи ограничивает изменение, но не шифрует содержимое и не препятствует загрузке презентации. Чтобы управлять паролями для изменения презентаций, см. Защита презентаций от записи.
Приведённые ниже рабочие процессы применимы как к презентациям PPT, так и PPTX. В примерах используются оба формата, когда важно их файловое и потоковое поведение.
Шифрование презентации открывающим паролем
Используйте ProtectionManager.encrypt для назначения открывающего пароля. Затем используйте Presentation.save для сохранения зашифрованной презентации.
Следующий пример шифрует презентацию PPTX:
import aspose.slides as slides
with slides.Presentation("pres.pptx") as presentation:
presentation.protection_manager.encrypt("open_password")
presentation.save("encrypted-pres.pptx", slides.export.SaveFormat.PPTX)
Загрузка зашифрованной презентации
Установите LoadOptions.password в открывающий пароль и передайте параметры в Presentation при загрузке файла. Загрузка завершится ошибкой, если требуется открывающий пароль, а предоставленный пароль отсутствует или неверен.
import aspose.slides as slides
load_options = slides.LoadOptions()
load_options.password = "open_password"
with slides.Presentation("encrypted-pres.pptx", load_options) as presentation:
# Работа с расшифрованной презентацией.
pass
Удаление шифрования из презентации
Загрузите презентацию с её открывающим паролем, вызовите ProtectionManager.remove_encryption, и сохраните результат. Сохранённую презентацию затем можно загрузить без пароля.
import aspose.slides as slides
load_options = slides.LoadOptions()
load_options.password = "open_password"
with slides.Presentation("encrypted-pres.pptx", load_options) as presentation:
presentation.protection_manager.remove_encryption()
presentation.save("encryption-removed.pptx", slides.export.SaveFormat.PPTX)
Проверка открывающего пароля перед загрузкой
Используйте PresentationFactory.get_presentation_info для получения PresentationInfo без создания полного экземпляра презентации. Проверьте PresentationInfo.is_password_protected перед запросом или проверкой пароля. Когда защита присутствует, проверьте предоставленное значение с помощью PresentationInfo.check_password.
Рабочий процесс с указанием пути к файлу
Следующий пример проверяет открывающий пароль для файла PPTX, передаёт проверенное значение в LoadOptions.password, а затем загружает полную презентацию:
import aspose.slides as slides
file_path = "protected-presentation.pptx"
password = "open_password"
presentation_info = slides.PresentationFactory.instance.get_presentation_info(file_path)
if not presentation_info.is_password_protected:
print("The presentation does not have an opening password.")
elif not presentation_info.check_password(password):
print("The opening password is incorrect.")
else:
load_options = slides.LoadOptions()
load_options.password = password
with slides.Presentation(file_path, load_options) as presentation:
print("The presentation was validated and loaded successfully.")
Рабочий процесс с потоком
Перегрузка потока метода PresentationFactory.get_presentation_info обеспечивает тот же рабочий процесс. Сбросьте позицию ищущегося потока перед загрузкой полной презентации из этого потока.
Следующий пример использует файл PPT:
import aspose.slides as slides
password = "open_password"
with open("protected-presentation.ppt", "rb") as presentation_stream:
presentation_info = slides.PresentationFactory.instance.get_presentation_info(presentation_stream)
if not presentation_info.is_password_protected:
print("The presentation does not have an opening password.")
elif not presentation_info.check_password(password):
print("The opening password is incorrect.")
else:
presentation_stream.seek(0)
load_options = slides.LoadOptions()
load_options.password = password
with slides.Presentation(presentation_stream, load_options) as presentation:
print("The presentation was validated and loaded successfully.")
Возвращаемые значения CheckPassword
PresentationInfo.check_password возвращает True только когда у презентации есть открывающий пароль и предоставленный пароль верен. Он возвращает False в каждом из следующих случаев:
- Пароль неверен.
- У презентации нет открывающего пароля.
- Предоставленный пароль равен
Noneили пустой строке.
Поведение одинаково для презентаций PPT и PPTX.
Проверка, зашифрована ли загруженная презентация
После загрузки презентации с правильным паролем проверьте ProtectionManager.is_encrypted для подтверждения, что исходная презентация была зашифрована. Чтобы обнаружить защиту открывающим паролем до загрузки, используйте PresentationInfo.is_password_protected, как показано выше.
import aspose.slides as slides
load_options = slides.LoadOptions()
load_options.password = "open_password"
with slides.Presentation("encrypted-pres.pptx", load_options) as presentation:
is_encrypted = presentation.protection_manager.is_encrypted
print("The presentation is encrypted: " + str(is_encrypted))
Рекомендации по безопасности
Безопасность
Не записывайте открывающие пароли в журналы и не включайте их в диагностические сообщения. Избегайте ненужных повторных попыток проверки, храните пароли в памяти только столько, сколько требуется, и переиспользуйте результат успешной проверки при немедленной загрузке презентации.Защита презентации паролем онлайн
- Откройте приложение Aspose.Slides Lock.
- Выберите или загрузите презентацию.
- Введите пароль для защиты просмотра.
- При желании введите отдельный пароль для защиты редактирования.
- Примените защиту и скачайте полученный файл.
FAQ
В чём разница между открывающим паролем и паролем защиты от записи?
Открывающий пароль шифрует презентацию и требуется для загрузки её содержимого. Пароль защиты от записи ограничивает изменения без шифрования содержимого.
Можно ли проверить открывающий пароль без загрузки всех слайдов?
Да. Получите информацию о презентации, проверьте наличие защиты открывающим паролем и проверьте пароль перед созданием полного экземпляра презентации.
Поддерживают ли рабочие процессы проверки пароля как PPT, так и PPTX?
Да. Обнаружение и проверка пароля по пути к файлу и по потоку ведут себя одинаково для презентаций PPT и PPTX.