Python ile Sunumlara Dijital İmzalar Ekleyin

Giriş

Dijital sertifika, belirli bir organizasyon veya kişi tarafından oluşturulduğu işaretlenmiş, parola korumalı bir PowerPoint sunumu oluşturmak için kullanılır. Dijital sertifika, yetkili bir kuruluş - bir sertifika yetkilisi ile iletişime geçilerek elde edilebilir. Dijital sertifika sistemi kurulduktan sonra, Dosya -> Bilgi -> Sunumu Koru yoluyla sunuma dijital imza eklemek için kullanılabilir:

todo:image_alt_text

Sunum birden fazla dijital imza içerebilir. Dijital imza sunuma eklendikten sonra, PowerPoint’te özel bir mesaj görüntülenir:

todo:image_alt_text

Sunumu imzalamak veya sunum imzalarının doğruluğunu kontrol etmek için Aspose.Slides API, DigitalSignature sınıfını, DigitalSignatureCollection sınıfını ve Presentation.digital_signatures özelliğini sağlar. Şu anda dijital imzalar yalnızca PPTX formatı için desteklenmektedir.

PFX Sertifikasından Dijital İmza Ekleme

Aşağıdaki kod örneği, bir PFX sertifikasından dijital imza nasıl eklenir gösterir:

  1. PFX dosyasını açın ve PFX şifresini DigitalSignature nesnesine aktarın.
  2. Oluşturulan imzayı sunum nesnesine ekleyin.
import aspose.slides as slides

with slides.Presentation() as pres:
    # PFX dosyası ve PFX şifresi ile DigitalSignature nesnesi oluştur
    signature = slides.DigitalSignature(path + "testsignature1.pfx", "testpass1")

    # Yeni dijital imzayı yorumla
    signature.comments = "Aspose.Slides digital signing test."

    # Dijital imzayı sunuma ekle
    pres.digital_signatures.add(signature)

    # Sunumu kaydet
    pres.save("SomePresentationSigned.pptx", slides.export.SaveFormat.PPTX)

Artık sunumun dijital olarak imzalanıp imzalanmadığını ve değiştirilip değiştirilmediğini kontrol etmek mümkün:

# Sunumu aç
with slides.Presentation("SomePresentationSigned.pptx") as pres:
    if len(pres.digital_signatures) > 0:
        allSignaturesAreValid = True

        print("Signatures used to sign the presentation: ")
        # Tüm dijital imzaların geçerli olup olmadığını kontrol et
        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.")

SSS

Bir dosyadan mevcut imzaları kaldırabilir miyim?

Evet. Dijital imzalar koleksiyonu bireysel öğeleri kaldırmayı ve koleksiyonu tamamen temizlemeyi destekler; dosyayı kaydettikten sonra, sunumda hiçbir imza bulunmayacaktır.

İmzaladıktan sonra dosya “salt okunur” olur mu?

Hayır. Bir imza bütünlüğü ve yazarlığı korur ancak düzenlemeleri engellemez. Düzenlemeyi kısıtlamak için, bunu “Read-only” veya bir parola ile birleştirin.

İmza farklı PowerPoint sürümlerinde doğru görüntülenecek mi?

İmza, OOXML (PPTX) konteyneri için oluşturulur. OOXML imzalarını destekleyen modern PowerPoint sürümleri, bu imzaların durumunu doğru şekilde görüntüler.