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:
Sunum birden fazla dijital imza içerebilir. Dijital imza sunuma eklendikten sonra, PowerPoint’te özel bir mesaj görüntülenir:
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:
- PFX dosyasını açın ve PFX şifresini DigitalSignature nesnesine aktarın.
- 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.