Digitale Signaturen zu Präsentationen mit Python hinzufügen
Digitales Zertifikat wird verwendet, um eine passwortgeschützte PowerPoint-Präsentation zu erstellen, die als von einer bestimmten Organisation oder Person erstellt gekennzeichnet ist. Ein digitales Zertifikat kann durch Kontaktaufnahme mit einer autorisierten Organisation – einer Zertifizierungsstelle – erhalten werden. Nach der Installation des digitalen Zertifikats im System kann es verwendet werden, um über Datei -> Informationen -> Präsentation schützen eine digitale Signatur zur Präsentation hinzuzufügen:
Eine Präsentation kann mehr als eine digitale Signatur enthalten. Nachdem die digitale Signatur zur Präsentation hinzugefügt wurde, erscheint in PowerPoint eine spezielle Meldung:
Um eine Präsentation zu signieren oder die Authentizität von Präsentationssignaturen zu überprüfen, stellt die Aspose.Slides API die Schnittstelle IDigitalSignature, die Schnittstelle IDigitalSignatureCollection undIPresentation.DigitalSignatures bereit. Derzeit werden digitale Signaturen nur für das PPTX-Format unterstützt.
Digitale Signatur aus PFX-Zertifikat hinzufügen
Das untenstehende Code‑Beispiel zeigt, wie eine digitale Signatur aus einem PFX‑Zertifikat hinzugefügt wird:
- Öffnen Sie die PFX‑Datei und übergeben Sie das PFX‑Passwort an das Objekt DigitalSignature.
- Fügen Sie die erstellte Signatur dem Präsentationsobjekt hinzu.
#[TODO:Exception] RuntimeError: Proxy-Fehler(FileNotFoundException): Datei oder Assembly 'System.Security.Cryptography.Xml, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' konnte nicht geladen werden. Datei wurde nicht gefunden.
import aspose.slides as slides
with slides.Presentation() as pres:
# DigitalSignature-Objekt mit PFX-Datei und PFX-Passwort erstellen
signature = slides.DigitalSignature(path + "testsignature1.pfx", "testpass1")
# Kommentar zur neuen digitalen Signatur
signature.comments = "Aspose.Slides digital signing test."
# Digitale Signatur zur Präsentation hinzufügen
pres.digital_signatures.add(signature)
# Präsentation speichern
pres.save("SomePresentationSigned.pptx", slides.export.SaveFormat.PPTX)
Jetzt ist es möglich zu prüfen, ob die Präsentation digital signiert wurde und nicht verändert wurde:
# Präsentation öffnen
with slides.Presentation("SomePresentationSigned.pptx") as pres:
if len(pres.digital_signatures) > 0:
allSignaturesAreValid = True
print("Signatures used to sign the presentation: ")
# Prüfen, ob alle digitalen Signaturen gültig sind
for signature in pres.digital_signatures :
print(signature.certificate.subject_name.name + ", "
+ signature.sign_time.strftime("yyyy-MM-dd HH:mm") + " -- " + "VALID" if signature.is_valid else "INVALID")
allSignaturesAreValid = allSignaturesAreValid and signature.is_valid
if allSignaturesAreValid:
print("Presentation is genuine, all signatures are valid.")
else:
print("Presentation has been modified since signing.")
FAQ
Kann ich vorhandene Signaturen aus einer Datei entfernen?
Ja. Die Sammlung digitaler Signaturen unterstützt das Entfernen einzelner Elemente und das Komplett leeren; nachdem Sie die Datei gespeichert haben, enthält die Präsentation keine Signaturen mehr.
Wird die Datei nach dem Signieren “schreibgeschützt”?
Nein. Eine Signatur bewahrt die Integrität und Urheberschaft, blockiert jedoch keine Änderungen. Um das Bearbeiten einzuschränken, kombinieren Sie sie mit “Schreibgeschützt” oder einem Passwort.
Wird die Signatur in verschiedenen PowerPoint-Versionen korrekt angezeigt?
Die Signatur wird für den OOXML‑Container (PPTX) erstellt. Moderne PowerPoint‑Versionen, die OOXML‑Signaturen unterstützen, zeigen den Status solcher Signaturen korrekt an.