PHP'de Sunumları Parola ile Koruma

Genel Bakış

Açma parolası bir sunumu şifreler. Doğru parola, sunum içeriğini yüklemek ve görüntülemek için gereklidir; bu koruma gizlilik sağlar.

Açma parolası, yazma koruma parolasından farklıdır. Yazma koruması, değişikliği kısıtlar ancak içeriği şifrelemez veya sunumun yüklenmesini engellemez. Sunumları değiştirmek için parolaları yönetmek üzere bakınız Write-Protect Presentations.

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 önemli olduğu durumlarda her iki biçimi de kullanır.

Açma Parolasıyla Sunumu Şifrele

Açma parolası atamak için ProtectionManager::encrypt kullanın. Ardından şifrelenmiş sunumu kaydetmek için Presentation::save kullanın.

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

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new 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 sunum şifrelemesine belge özelliklerini dahil eder. ProtectionManager::setEncryptDocumentProperties yöntemi, kaydırak içeriği şifrelemesinden bağımsız olarak bu davranışı kontrol eder. Açma parolası olmadan indeksleme, sınıflandırma, arama veya belge yönetim sistemi metadata okumak zorunda olduğunda, ProtectionManager::encrypt çağırmadan önce false geçin.

Aşağıdaki örnek, yerleşik belge özellikleri genel bırakılarak bir PPTX sunumunu şifreli oluşturur:

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new 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ğerini ProtectionManager::setEncryptDocumentProperties yöntemine geçirmek, slaytları, ana şablonları, düzenleri, şekilleri, medyayı veya diğer sunum içeriklerini genel yapmaz. Yalnızca belge özelliklerini etkiler. Bu özellikleri şifreli içeriği yüklemeden okumak için bakınız Manage Presentation Properties.

Şifreli Sunumu Yükle

Dosyayı yüklerken açma parolasını LoadOptions::setPassword ile ayarlayın ve seçenekleri Presentation öğesine geçirin. Açma parolası gerektiğinde, sağlanan parola eksik ya da hatalıysa yükleme başarısız olur.

use aspose\slides\LoadOptions;
use aspose\slides\Presentation;

$loadOptions = new LoadOptions();
$loadOptions->setPassword("open_password");

$presentation = new Presentation("encrypted-pres.pptx", $loadOptions);
try {
    # Şifre çözülen sunumla çalışın.
} finally {
    $presentation->dispose();
}

Sunumdan Şifrelemeyi Kaldır

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

use aspose\slides\LoadOptions;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$loadOptions = new LoadOptions();
$loadOptions->setPassword("open_password");

$presentation = new Presentation("encrypted-pres.pptx", $loadOptions);
try {
    $presentation->getProtectionManager()->removeEncryption();
    $presentation->save("encryption-removed.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

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

Tam bir sunum örneği oluşturmadan PresentationInfo elde etmek için PresentationFactory::getPresentationInfo kullanın. Parola talep etmeden veya doğrulamadan önce PresentationInfo::isPasswordProtected 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çma parolasını doğrular, doğrulanan değeri LoadOptions::setPassword öğesine geçirir ve ardından tam sunumu yükler:

use aspose\slides\LoadOptions;
use aspose\slides\Presentation;
use aspose\slides\PresentationFactory;

$filePath = "protected-presentation.pptx";
$password = "open_password";
$presentationInfo = PresentationFactory::getInstance()->getPresentationInfo($filePath);

if (!$presentationInfo->isPasswordProtected()) {
    echo("The presentation does not have an opening password.\n");
} elseif (!$presentationInfo->checkPassword($password)) {
    echo("The opening password is incorrect.\n");
} else {
    $loadOptions = new LoadOptions();
    $loadOptions->setPassword($password);

    $presentation = new Presentation($filePath, $loadOptions);
    try {
        echo("The presentation was validated and loaded successfully.\n");
    } finally {
        $presentation->dispose();
    }
}

Akış İş Akışı

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

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

use aspose\slides\LoadOptions;
use aspose\slides\Presentation;
use aspose\slides\PresentationFactory;

$password = "open_password";

$presentationStream = new Java("java.io.FileInputStream", "protected-presentation.ppt");
try {
    $presentationInfo = PresentationFactory::getInstance()->getPresentationInfo($presentationStream);

    if (!$presentationInfo->isPasswordProtected()) {
        echo("The presentation does not have an opening password.\n");
    } elseif (!$presentationInfo->checkPassword($password)) {
        echo("The opening password is incorrect.\n");
    } else {
        $presentationStream->getChannel()->position(0);

        $loadOptions = new LoadOptions();
        $loadOptions->setPassword($password);

        $presentation = new Presentation($presentationStream, $loadOptions);
        try {
            echo("The presentation was validated and loaded successfully.\n");
        } finally {
            $presentation->dispose();
        }
    }
} finally {
    $presentationStream->close();
}

checkPassword Dönüş Değerleri

PresentationInfo::checkPassword yalnızca sunumun bir açma parolası olduğu ve sağlanan parolanın doğru olduğu durumda true döndürür. Aşağıdaki durumlarda false döndürür:

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

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

Yüklenen Sunumun Şifreli Olup Olmadığını Kontrol Et

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

use aspose\slides\LoadOptions;
use aspose\slides\Presentation;

$loadOptions = new LoadOptions();
$loadOptions->setPassword("open_password");

$presentation = new Presentation("encrypted-pres.pptx", $loadOptions);
try {
    $isEncrypted = $presentation->getProtectionManager()->isEncrypted();
    echo("The presentation is encrypted: " . ($isEncrypted ? "true" : "false") . "\n");
} finally {
    $presentation->dispose();
}

Güvenlik Önerileri

Sunumu Çevrimiçi Parola ile Koruyun

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

SSS

Açma parolası ile yazma koruma parolası arasındaki fark nedir?

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

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

Evet. Sunum bilgilerini elde edin, açma 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çma parolası olmadan meta verileri okuyabilir mi?

Evet, ancak yalnızca sunum belge özelliği şifrelemesi devre dışı bırakılarak şifrelenmişse. Uygulama daha sonra 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 de PPTX’i destekliyor mu?

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