Digitale handtekeningen aan presentaties toevoegen met Python
Introductie
Digital certificate wordt gebruikt om een met wachtwoord beveiligde PowerPoint‑presentatie te maken, gemarkeerd als gemaakt door een bepaalde organisatie of persoon. Een digitaal certificaat kan verkregen worden door contact op te nemen met een geautoriseerde organisatie – een certificaatautoriteit. Nadat het digitale certificaat in het systeem is geïnstalleerd, kan het gebruikt worden om een digitale handtekening aan de presentatie toe te voegen via Bestand -> Info -> Presentatie beveiligen:
Een presentatie kan meer dan één digitale handtekening bevatten. Nadat de digitale handtekening is toegevoegd aan de presentatie, verschijnt er een speciaal bericht in PowerPoint:
Om een presentatie te ondertekenen of de authenticiteit van presentatiehandtekeningen te controleren, biedt de Aspose.Slides API de DigitalSignature‑klasse, de DigitalSignatureCollection‑klasse en de eigenschap Presentation.digital_signatures. Momenteel worden digitale handtekeningen alleen ondersteund voor het PPTX‑formaat.
Digitale handtekening toevoegen vanuit PFX‑certificaat
Het codevoorbeeld hieronder toont hoe een digitale handtekening toe te voegen vanuit een PFX‑certificaat:
- Open het PFX‑bestand en geef het PFX‑wachtwoord door aan het DigitalSignature‑object.
- Voeg de gemaakte handtekening toe aan het presentatie‑object.
import aspose.slides as slides
with slides.Presentation() as pres:
# Maak DigitalSignature-object met PFX-bestand en PFX-wachtwoord
signature = slides.DigitalSignature(path + "testsignature1.pfx", "testpass1")
# Voeg opmerking toe aan nieuwe digitale handtekening
signature.comments = "Aspose.Slides digital signing test."
# Voeg digitale handtekening toe aan presentatie
pres.digital_signatures.add(signature)
# sla presentatie op
pres.save("SomePresentationSigned.pptx", slides.export.SaveFormat.PPTX)
Nu is het mogelijk om te controleren of de presentatie digitaal ondertekend is en niet is gewijzigd:
# Open presentatie
with slides.Presentation("SomePresentationSigned.pptx") as pres:
if len(pres.digital_signatures) > 0:
allSignaturesAreValid = True
print("Signatures used to sign the presentation: ")
# Controleer of alle digitale handtekeningen geldig zijn
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
Kan ik bestaande handtekeningen uit een bestand verwijderen?
Ja. De collectie digitale handtekeningen ondersteunt het verwijderen van individuele items en het volledig leegmaken; nadat u het bestand heeft opgeslagen, zal de presentatie geen handtekeningen meer bevatten.
Wordt het bestand ‘alleen-lezen’ na ondertekening?
Nee. Een handtekening behoudt integriteit en auteurschap, maar blokkeert geen bewerkingen. Om bewerken te beperken, combineer dit met “Alleen-lezen” of een wachtwoord.
Wordt de handtekening correct weergegeven in verschillende versies van PowerPoint?
De handtekening is gemaakt voor de OOXML (PPTX)‑container. Moderne versies van PowerPoint die OOXML‑handtekeningen ondersteunen, geven de status van dergelijke handtekeningen correct weer.