Πρ��σθήκη Ψηφιακών Υπογραφών σε Παρουσιάσεις με Python

Εισαγωγή

Ψηφιακό πιστοποιητικό χρησιμοποιείται για τη δημιουργία μίας παρουσίασης PowerPoint προστατευμένης με κωδικό, η οποία σημειώνεται ως δημιουργημένη από συγκεκριμένη οργάνωση ή άτομο. Το ψηφιακό πιστοποιητικό μπορεί να ληφθεί επικοινωνώντας με μια εξουσιοδοτημένη οργάνωση – μια αρχή πιστοποιήσεων. Μετά την εγκατάσταση του ψηφιακού πιστοποιητικού στο σύστημα, μπορεί να χρησιμοποιηθεί για την προσθήκη ψηφιακής υπογραφής στην παρουσίαση μέσω File -> Info -> Protect Presentation:

todo:image_alt_text

Η παρουσίαση μπορεί να περιέχει περισσότερες από μία ψηφιακές υπογραφές. Αφού προστεθεί η ψηφιακή υπογραφή στην παρουσίαση, ένα ειδικό μήνυμα θα εμφανιστεί στο PowerPoint:

todo:image_alt_text

Για να υπογράψετε την παρουσίαση ή να ελέγξετε την αυθεντικότητα των υπογραφών της παρουσίασης, Aspose.Slides API παρέχει DigitalSignature κλάση, DigitalSignatureCollection κλάση και Presentation.digital_signatures ιδιότητα. Προς το παρόν, οι ψηφιακές υπογραφές υποστηρίζονται μόνο για τη μορφή PPTX.

Προσθήκη Ψηφιακής Υπογραφής από Πιστοποιητικό PFX

Το παρακάτω δείγμα κώδικα δείχνει πώς να προσθέσετε ψηφιακή υπογραφή από ένα πιστοποιητικό PFX:

  1. Ανοίξτε το αρχείο PFX και περάστε τον κωδικό πρόσβασης PFX στο αντικείμενο DigitalSignature.
  2. Προσθέστε τη δημιουργημένη υπογραφή στο αντικείμενο παρουσίασης.
import aspose.slides as slides

with slides.Presentation() as pres:
    # Δημιουργία αντικειμένου DigitalSignature με αρχείο PFX και κωδικό PFX
    signature = slides.DigitalSignature(path + "testsignature1.pfx", "testpass1")

    # Σχόλιο νέας ψηφιακής υπογραφής
    signature.comments = "Aspose.Slides digital signing test."

    # Προσθήκη ψηφιακής υπογραφής στην παρουσίαση
    pres.digital_signatures.add(signature)

    # Αποθήκευση παρουσίασης
    pres.save("SomePresentationSigned.pptx", slides.export.SaveFormat.PPTX)

Τώρα είναι δυνατόν να ελέγξετε εάν η παρουσίαση είχε ψηφιακή υπογραφή και δεν έχει τροποποιηθεί:

# Άνοιγμα παρουσίασης
with slides.Presentation("SomePresentationSigned.pptx") as pres:
    if len(pres.digital_signatures) > 0:
        allSignaturesAreValid = True

        print("Signatures used to sign the presentation: ")
        # Έλεγχος εάν όλες οι ψηφιακές υπογραφές είναι έγκυρες
        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.")

Συχνές Ερωτήσεις

Μπορώ να αφαιρέσω υπάρχουσες υπογραφές από ένα αρχείο;

Ναι. Η συλλογή ψηφιακών υπογραφών υποστηρίζει το removing individual items και το clearing it entirely; μετά την αποθήκευση του αρχείου, η παρουσίαση δεν θα έχει υπογραφές.

Γίνεται το αρχείο “μόνο για ανάγνωση” μετά την υπογραφή;

Όχι. Μια υπογραφή διατηρεί την ακεραιότητα και τη συγγραφή αλλά δεν εμποδίζει τις επεξεργασίες. Για περιορισμό επεξεργασίας, συνδυάστε το με το “Read-only” or a password.

Θα εμφανίζεται σωστά η υπογραφή σε διαφορετικές εκδόσεις του PowerPoint;

Η υπογραφή δημιουργείται για το κοντέινερ OOXML (PPTX). Σύγχρονες εκδόσεις του PowerPoint που υποστηρίζουν υπογραφές OOXML εμφανίζουν σωστά την κατάσταση αυτών των υπογραφών.