Aggiungere firme digitali alle presentazioni con Python
Introduzione
Digital certificate è utilizzato per creare una presentazione PowerPoint protetta da password, contrassegnata come creata da una particolare organizzazione o persona. Il certificato digitale può essere ottenuto contattando un’organizzazione autorizzata – un’autorità di certificazione. Dopo aver installato il certificato digitale nel sistema, può essere utilizzato per aggiungere una firma digitale alla presentazione tramite File -> Info -> Proteggi presentazione:
Una presentazione può contenere più di una firma digitale. Dopo che la firma digitale è stata aggiunta alla presentazione, verrà visualizzato un messaggio speciale in PowerPoint:
Per firmare una presentazione o verificare l’autenticità delle firme della presentazione, Aspose.Slides API fornisce la classe DigitalSignature , la classe DigitalSignatureCollection e la proprietà Presentation.digital_signatures . Attualmente, le firme digitali sono supportate solo per il formato PPTX.
Aggiungere firma digitale da certificato PFX
Il esempio di codice seguente mostra come aggiungere una firma digitale da un certificato PFX:
- Aprire il file PFX e passare la password PFX all’oggetto DigitalSignature.
- Aggiungere la firma creata all’oggetto presentazione.
import aspose.slides as slides
with slides.Presentation() as pres:
# Crea l'oggetto DigitalSignature con file PFX e password PFX
signature = slides.DigitalSignature(path + "testsignature1.pfx", "testpass1")
# Aggiungi commento nuova firma digitale
signature.comments = "Aspose.Slides digital signing test."
# Aggiungi firma digitale alla presentazione
pres.digital_signatures.add(signature)
# salva presentazione
pres.save("SomePresentationSigned.pptx", slides.export.SaveFormat.PPTX)
Ora è possibile verificare se la presentazione è stata firmata digitalmente e non è stata modificata:
# Apri presentazione
with slides.Presentation("SomePresentationSigned.pptx") as pres:
if len(pres.digital_signatures) > 0:
allSignaturesAreValid = True
print("Signatures used to sign the presentation: ")
# Verifica se tutte le firme digitali sono valide
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.")
Domande frequenti
Posso rimuovere le firme esistenti da un file?
Sì. La raccolta di firme digitali supporta la removing individual items e la clearing it entirely; dopo aver salvato il file, la presentazione non avrà firme.
Il file diventa “sola lettura” dopo la firma?
No. Una firma preserva l’integrità e l’autore, ma non blocca le modifiche. Per limitare la modifica, combinarla con “Read-only” or a password.
La firma verrà visualizzata correttamente in diverse versioni di PowerPoint?
La firma è creata per il contenitore OOXML (PPTX). Le versioni moderne di PowerPoint che supportano le firme OOXML visualizzano correttamente lo stato di tali firme.