Python'da Sunumları Parola ile Korumak

Genel Bakış

Açılış parolası bir sunumu şifreler. Sunum içeriğini yüklemek ve görüntülemek için doğru parola gereklidir; bu koruma gizliliği sağlar.

Açılış parolası, yazma koruması parolasından farklıdır. Yazma koruması, değiştirmeyi kısıtlar ancak içeriği şifrelemez veya sunumun yüklenmesini engellemez. Sunumları değiştirmek için parolaları yönetmek amacıyla, Write-Protect Presentations bölümüne bakın.

Aşağıdaki iş akışları hem PPT hem de PPTX sunumları için geçerlidir. Örnekler, dosya tabanlı ve akış tabanlı davranışlarının önemli olduğu her iki formatı da kullanır.

Açılış Parolasıyla Sunumu Şifrele

Açılış parolası atamak için ProtectionManager.encrypt kullanın. Ardından şifreli sunumu kalıcı hâle getirmek için Presentation.save yöntemini kullanın.

Aşağıdaki örnek bir PPTX sunumunu şifreler:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat

presentation = Presentation("pres.pptx")
try:
    presentation.getProtectionManager().encrypt("open_password")
    presentation.save("encrypted-pres.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Belge Özelliklerini Genel Tut

Varsayılan olarak, Aspose.Slides belge özelliklerini sunum şifrelemesine dahil eder. Bu davranışı slayt içeriği şifrelemesinden bağımsız olarak kontrol eden yöntem ProtectionManager.setEncryptDocumentProperties’dir. Açılış parolası olmadan indeksleme, sınıflandırma, arama veya belge yönetim sistemlerinin meta verileri okuması gerektiğinde, ProtectionManager.encrypt çağırmadan önce False geçin.

Aşağıdaki örnek, yerleşik belge özelliklerini genel tutarak şifreli bir PPTX sunumu oluşturur:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Presentation, SaveFormat

presentation = Presentation()
try:
    properties = presentation.getDocumentProperties()
    properties.setAuthor("Contoso Knowledge Management")
    properties.setTitle("Quarterly Product Roadmap")
    properties.setKeywords("roadmap, planning, internal")

    presentation.getSlides().get_Item(0).setName("Encrypted presentation content")
    presentation.getProtectionManager().setEncryptDocumentProperties(False)
    presentation.getProtectionManager().encrypt("open_password")
    presentation.save("public-properties-encrypted.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

False değerinin ProtectionManager.setEncryptDocumentProperties yöntemine geçirilmesi slaytları, ana sayfaları, düzenleri, şekilleri, medyayı veya diğer sunum içeriğini genel hale getirmez. Bu yalnızca belge özelliklerini etkiler. Şifreli içeriği yüklemeden bu özellikleri okumak için, Manage Presentation Properties bölümüne bakın.

Şifreli Bir Sunumu Yükle

Dosyayı yüklerken açılış parolasını LoadOptions.setPassword ile ayarlayın ve bu seçenekleri Presentation nesnesine geçirin. Açılış parolası gerekli olduğunda ancak sağlanan parola eksik ya da hatalıysa yükleme başarısız olur.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import LoadOptions, Presentation

load_options = LoadOptions()
load_options.setPassword("open_password")

presentation = Presentation("encrypted-pres.pptx", load_options)
try:
    # Şifre çözülmüş sunumla çalış.
    pass
finally:
    presentation.dispose()

Bir Sunumdan Şifrelemeyi Kaldır

Sunumu açılış parolasıyla yükleyin, ProtectionManager.removeEncryption yöntemini çağırın ve sonucu kaydedin. Kaydedilen sunum daha sonra parola olmadan yüklenebilir.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import LoadOptions, Presentation, SaveFormat

load_options = LoadOptions()
load_options.setPassword("open_password")

presentation = Presentation("encrypted-pres.pptx", load_options)
try:
    presentation.getProtectionManager().removeEncryption()
    presentation.save("encryption-removed.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Yüklemeden Önce Açılış Parolasını Doğrula

PresentationFactory.getPresentationInfo kullanarak tam bir sunum örneği oluşturmadan PresentationInfo elde edin. Parola istemeden veya doğrulamadan önce PresentationInfo.isPasswordProtected özelliğini kontrol edin. Koruma mevcutsa, sağlanan değeri PresentationInfo.checkPassword ile doğrulayın.

Dosya Yolu İş Akışı

Aşağıdaki örnek, bir PPTX dosyası için açılış parolasını doğrular, doğrulanan değeri LoadOptions.setPassword’e geçirir ve ardından tam sunumu yükler:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import LoadOptions, Presentation, PresentationFactory

file_path = "protected-presentation.pptx"
password = "open_password"
presentation_info = PresentationFactory.getInstance().getPresentationInfo(file_path)

if not presentation_info.isPasswordProtected():
    print("The presentation does not have an opening password.")
elif not presentation_info.checkPassword(password):
    print("The opening password is incorrect.")
else:
    load_options = LoadOptions()
    load_options.setPassword(password)

    presentation = Presentation(file_path, load_options)
    try:
        print("The presentation was validated and loaded successfully.")
    finally:
        presentation.dispose()

Akış İş Akışı

PresentationFactory.getPresentationInfo yönteminin akış aşırı yüklemesi aynı iş akışını sağlar. Tam sunumu o akıştan yüklemeden önce, aranabilir bir akışın konumunu sıfırlayın.

Aşağıdaki örnek bir PPT dosyası kullanır:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import LoadOptions, Presentation, PresentationFactory

FileInputStream = jpype.JClass("java.io.FileInputStream")

password = "open_password"

presentation_stream = FileInputStream("protected-presentation.ppt")
try:
    presentation_info = PresentationFactory.getInstance().getPresentationInfo(presentation_stream)

    if not presentation_info.isPasswordProtected():
        print("The presentation does not have an opening password.")
    elif not presentation_info.checkPassword(password):
        print("The opening password is incorrect.")
    else:
        presentation_stream.getChannel().position(0)

        load_options = LoadOptions()
        load_options.setPassword(password)

        presentation = Presentation(presentation_stream, load_options)
        try:
            print("The presentation was validated and loaded successfully.")
        finally:
            presentation.dispose()
finally:
    presentation_stream.close()

checkPassword Dönüş Değerleri

PresentationInfo.checkPassword yalnızca sunumda bir açılış parolası varsa ve sağlanan parola doğruysa True döndürür. Aşağıdaki durumlarda False döndürür:

  • Parola yanlıştır.
  • Sunumun bir açılış parolası yoktur.
  • Sağlanan parola None veya boştur.

Davranış PPT ve PPTX sunumları için aynı olur.

Yüklenen Sunumun Şifrelenip Şifrelenmediğini Kontrol Et

Doğru parola ile bir sunumu yükledikten sonra, kaynak sunumun şifrelenip şifrelenmediğini doğrulamak için ProtectionManager.isEncrypted öğesini inceleyin. Yüklemeden önce açılış parolası korumasını tespit etmek için, yukarıda gösterildiği gibi PresentationInfo.isPasswordProtected yöntemini kullanın.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import LoadOptions, Presentation

load_options = LoadOptions()
load_options.setPassword("open_password")

presentation = Presentation("encrypted-pres.pptx", load_options)
try:
    is_encrypted = presentation.getProtectionManager().isEncrypted()
    print(f"The presentation is encrypted: {is_encrypted}")
finally:
    presentation.dispose()

Güvenlik Önerileri

Sunumu Çevrimiçi Parola Korumalı Hale Getir

  1. Aspose.Slides Lock uygulamasını açın.
  2. Sunumu seçin veya yükleyin.
  3. Görünüm koruması için bir parola girin.
  4. İsteğe bağlı olarak düzenleme koruması için ayrı bir parola girin.
  5. Koruması uygulayın ve ortaya çıkan dosyayı indirin.

SSS

Açılış parolası ile yazma koruması parolası arasındaki fark nedir?

Açılış parolası sunumu şifreler ve içeriğini yüklemek için gereklidir. Yazma koruması parolası ise içeriği şifrelemeden değişikliği kısıtlar.

Tüm slaytları yüklemeden bir açılış parolasını doğrulayabilir miyim?

Evet. Sunum bilgilerini alın, açılış parolası korumasının mevcut olup olmadığını kontrol edin ve tam bir sunum örneği oluşturmadan önce parolayı doğrulayın.

Bir uygulama açılış parolası olmadan meta verileri okuyabilir mi?

Evet, ancak yalnızca sunum belge‑özelliği şifrelemesi devre dışı bırakılarak şifrelenmişse. Uygulama o zaman Manage Presentation Properties bölümünde açıklanan yalnızca belge özelliklerini yükleme modunu kullanmalıdır.

Parola kontrol iş akışları hem PPT hem PPTX’i destekliyor mu?

Evet. Dosya yolu ve akış tabanlı parola tespiti ve doğrulaması, PPT ve PPTX sunumları için aynı şekilde çalışır.