Passwortgeschützte Präsentationen in Python

Overview

Ein Öffnungspasswort verschlüsselt eine Präsentation. Das korrekte Passwort ist erforderlich, um den Präsentationsinhalt zu laden und anzuzeigen, sodass dieser Schutz Vertraulichkeit bietet.

Ein Öffnungspasswort unterscheidet sich von einem Schreibschutz‑Passwort. Der Schreibschutz beschränkt die Bearbeitung, verschlüsselt jedoch nicht den Inhalt und verhindert nicht das Laden der Präsentation. Zum Verwalten von Passwörtern für die Bearbeitung von Präsentationen siehe Write-Protect Presentations.

Die unten dargestellten Workflows gelten sowohl für PPT‑ als auch für PPTX‑Präsentationen. Die Beispiele verwenden beide Formate, wenn das datei‑ bzw. streambasierte Verhalten wichtig ist.

Encrypt a Presentation with an Opening Password

Verwenden Sie ProtectionManager.encrypt, um ein Öffnungspasswort zuzuweisen. Anschließend verwenden Sie Presentation.save, um die verschlüsselte Präsentation zu speichern.

Das folgende Beispiel verschlüsselt eine PPTX‑Präsentation:

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)

Keep Document Properties Public

Standardmäßig schließt Aspose.Slides Dokumenteigenschaften in die Präsentationsverschlüsselung ein. Die Eigenschaft ProtectionManager.encrypt_document_properties steuert dieses Verhalten unabhängig von der Folien‑Inhaltsverschlüsselung. Setzen Sie sie auf False, bevor Sie ProtectionManager.encrypt aufrufen, wenn ein Index‑, Klassifizierungs‑, Such‑ oder Dokument‑Management‑System Metadaten ohne das Öffnungspasswort lesen muss.

Das folgende Beispiel erstellt eine verschlüsselte PPTX‑Präsentation, lässt dabei jedoch die integrierten Dokumenteigenschaften öffentlich:

import aspose.slides as slides

with slides.Presentation() as presentation:
    properties = presentation.document_properties
    properties.author = "Contoso Knowledge Management"
    properties.title = "Quarterly Product Roadmap"
    properties.keywords = "roadmap, planning, internal"

    presentation.slides[0].name = "Encrypted presentation content"
    presentation.protection_manager.encrypt_document_properties = False
    presentation.protection_manager.encrypt("open_password")
    presentation.save("public-properties-encrypted.pptx", slides.export.SaveFormat.PPTX)

Das Setzen von encrypt_document_properties auf False macht nicht Folien, Master, Layouts, Formen, Medien oder anderen Präsentationsinhalt öffentlich. Es betrifft ausschließlich die Dokumenteigenschaften. Um diese Eigenschaften zu lesen, ohne den verschlüsselten Inhalt zu laden, siehe Manage Presentation Properties.

Load an Encrypted Presentation

Setzen Sie LoadOptions.password auf das Öffnungspasswort und übergeben Sie die Optionen beim Laden an Presentation. Das Laden schlägt fehl, wenn ein Öffnungspasswort erforderlich, das angegebene Passwort jedoch fehlt oder falsch ist.

import aspose.slides as slides

load_options = slides.LoadOptions()
load_options.password = "open_password"

with slides.Presentation("encrypted-pres.pptx", load_options) as presentation:
    # Arbeiten mit der entschlüsselten Präsentation.
    pass

Remove Encryption from a Presentation

Laden Sie die Präsentation mit ihrem Öffnungspasswort, rufen Sie ProtectionManager.remove_encryption auf und speichern Sie das Ergebnis. Die gespeicherte Präsentation kann dann ohne Passwort geladen werden.

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)

Validate an Opening Password Before Loading

Verwenden Sie PresentationFactory.get_presentation_info, um PresentationInfo zu erhalten, ohne eine vollständige Präsentationsinstanz zu erstellen. Prüfen Sie PresentationInfo.is_password_protected, bevor Sie ein Passwort anfordern oder validieren. Wenn ein Schutz vorhanden ist, validieren Sie den angegebenen Wert mit PresentationInfo.check_password.

File-Path Workflow

Das folgende Beispiel validiert ein Öffnungspasswort für eine PPTX‑Datei, übergibt den validierten Wert an LoadOptions.password und lädt anschließend die vollständige Präsentation:

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.")

Stream Workflow

Die Stream‑Überladung von PresentationFactory.get_presentation_info bietet denselben Workflow. Setzen Sie die Position eines seek‑fähigen Streams zurück, bevor Sie die vollständige Präsentation aus diesem Stream laden.

Das folgende Beispiel verwendet eine PPT‑Datei:

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 Return Values

PresentationInfo.check_password gibt True zurück, nur wenn die Präsentation ein Öffnungspasswort hat und das angegebene Passwort korrekt ist. Es gibt False in den folgenden Fällen zurück:

  • Das Passwort ist falsch.
  • Die Präsentation hat kein Öffnungspasswort.
  • Das angegebene Passwort ist None oder leer.

Das Verhalten ist für PPT‑ und PPTX‑Präsentationen identisch.

Check Whether a Loaded Presentation Is Encrypted

Nachdem Sie eine Präsentation mit dem korrekten Passwort geladen haben, prüfen Sie ProtectionManager.is_encrypted, um zu bestätigen, dass die Quellpräsentation verschlüsselt war. Um den Öffnungspasswort‑Schutz vor dem Laden zu erkennen, verwenden Sie PresentationInfo.is_password_protected wie oben beschrieben.

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))

Security Recommendations

Password-Protect a Presentation Online

  1. Öffnen Sie die Anwendung Aspose.Slides Lock.
  2. Wählen Sie die Präsentation aus oder laden Sie sie hoch.
  3. Geben Sie ein Passwort für den Ansichtsschutz ein.
  4. Optional geben Sie ein separates Passwort für den Bearbeitungsschutz ein.
  5. Wenden Sie den Schutz an und laden Sie die resultierende Datei herunter.

FAQ

What is the difference between an opening password and a write-protection password?

Ein Öffnungspasswort verschlüsselt die Präsentation und ist zum Laden des Inhalts erforderlich. Ein Schreibschutz‑Passwort beschränkt die Bearbeitung, ohne den Inhalt zu verschlüsseln.

Can I validate an opening password without loading all slides?

Ja. Holen Sie Präsentationsinformationen, prüfen Sie, ob ein Öffnungspasswort‑Schutz vorhanden ist, und validieren Sie das Passwort, bevor Sie eine vollständige Präsentationsinstanz erstellen.

Can an application read metadata without the opening password?

Ja, jedoch nur, wenn die Präsentation mit encrypt_document_properties auf False verschlüsselt wurde. Die Anwendung muss dann den Modus zum Laden nur der Dokumenteigenschaften verwenden, der in Manage Presentation Properties beschrieben ist.

Do the password-checking workflows support both PPT and PPTX?

Ja. Dateipfad‑ und streambasierte Passworterkennung sowie -validierung verhalten sich für PPT‑ und PPTX‑Präsentationen gleich.