Jelszóval védett prezentációk PHP-ben

Áttekintés

A nyitó jelszó titkosítja a prezentációt. A helyes jelszó szükséges a prezentáció tartalmának betöltéséhez és megtekintéséhez, így ez a védelem titkosságot biztosít.

A nyitó jelszó eltér a írásvédelmi jelszótól. Az írásvédelem korlátozza a módosítást, de nem titkosítja a tartalmat, és nem akadályozza a prezentáció betöltését. A prezentációk módosításához használt jelszavak kezeléséhez lásd a Write-Protect Presentations.

Az alábbi munkafolyamatok mind a PPT, mind a PPTX prezentációkra vonatkoznak. A példák mindkét formátumot használják, ahol a fájl‑alapú és a stream‑alapú viselkedés fontos.

Prezentáció titkosítása nyitó jelszóval

Használd a ProtectionManager::encrypt metódust a nyitó jelszó hozzárendeléséhez. Ezután a Presentation::save segítségével tárold a titkosított prezentációt.

Az alábbi példa egy PPTX prezentációt titkosít:

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();
}

Dokumentum tulajdonságok nyilvánosak tartása

Alapértelmezés szerint az Aspose.Slides a dokumentum tulajdonságokat is belefoglalja a prezentáció titkosításába. A ProtectionManager::setEncryptDocumentProperties metódus e viselkedést a dia tartalmának titkosításától függetlenül szabályozza. false értéket add meg a ProtectionManager::encrypt hívása előtt, ha egy indexelő, osztályozó, kereső vagy dokumentumkezelő rendszernek a nyitó jelszó nélkül kell a metaadatokat olvasnia.

Az alábbi példa egy titkosított PPTX prezentációt hoz létre, miközben a beépített dokumentum tulajdonságok nyilvánosak maradnak:

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 átadása a ProtectionManager::setEncryptDocumentProperties metódusnak nem teszi nyilvánossá a diákat, master‑sablonokat, elrendezéseket, alakzatokat, médiát vagy a prezentáció egyéb tartalmát. Csak a dokumentum tulajdonságokra van hatással. Ezeknek a tulajdonságoknak a titkosított tartalom betöltése nélkül történő olvasásához lásd a Manage Presentation Properties.

Titkosított prezentáció betöltése

Állítsd be a LoadOptions::setPassword értékét a nyitó jelszóra, és add meg az opciókat a Presentation számára a fájl betöltésekor. A betöltés sikertelen, ha nyitó jelszó szükséges, de a megadott jelszó hiányzik vagy hibás.

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

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

$presentation = new Presentation("encrypted-pres.pptx", $loadOptions);
try {
    # Dolgozz a visszafejtett prezentációval.
} finally {
    $presentation->dispose();
}

Titkosítás eltávolítása egy prezentációból

Töltsd be a prezentációt a nyitó jelszóval, hívd meg a ProtectionManager::removeEncryption metódust, és mentsd el az eredményt. A mentett prezentáció ezután jelszó nélkül betölthető.

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();
}

Nyitó jelszó ellenőrzése betöltés előtt

Használd a PresentationFactory::getPresentationInfo metódust a PresentationInfo megszerzéséhez anélkül, hogy teljes prezentációs példányt hoznál létre. Ellenőrizd a PresentationInfo::isPasswordProtected értéket a jelszó lekérése vagy ellenőrzése előtt. Ha védelem van, ellenőrizd a megadott értéket a PresentationInfo::checkPassword segítségével.

Fájlútvonal munkafolyamat

Az alábbi példa ellenőrzi a nyitó jelszót egy PPTX fájlhoz, a validált értéket átadja a LoadOptions::setPassword metódusnak, majd betölti a teljes prezentációt:

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();
    }
}

Stream munkafolyamat

A PresentationFactory::getPresentationInfo streames túlterhelése ugyanazt a munkafolyamatot biztosítja. A teljes prezentáció streamből való betöltése előtt állítsd vissza egy kereshető stream pozícióját.

Az alábbi példa egy PPT fájlt használ:

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 visszatérési értékek

A PresentationInfo::checkPassword csak akkor ad vissza true értéket, ha a prezentációnak nyitó jelszója van, és a megadott jelszó helyes. false értéket ad a következő esetekben:

  • A jelszó helytelen.
  • A prezentációnak nincs nyitó jelszava.
  • A megadott jelszó null vagy üres.

A viselkedés PPT és PPTX prezentációk esetén is ugyanaz.

Ellenőrizze, hogy a betöltött prezentáció titkosított‑e

A megfelelő jelszóval betöltött prezentáció után vizsgáld meg a ProtectionManager::isEncrypted értéket, hogy megerősítsd, hogy a forrás prezentáció titkosítva volt. A nyitó jelszavas védelem betöltés előtti felderítéséhez használd a PresentationInfo::isPasswordProtected metódust, ahogy fentebb is látható.

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();
}

Biztonsági ajánlások

Prezentáció jelszóval való védelme online

  1. Nyisd meg az Aspose.Slides Lock alkalmazást.
  2. Válaszd ki vagy töltsd fel a prezentációt.
  3. Adj meg egy jelszót a megtekintési védelemhez.
  4. Opcionálisan adj meg egy külön jelszót a szerkesztési védelemhez.
  5. Alkalmazd a védelmet, és töltsd le a kapott fájlt.

GYIK

Mi a különbség a nyitó jelszó és az írásvédelmi jelszó között?

A nyitó jelszó titkosítja a prezentációt, és a tartalom betöltéséhez szükséges. Az írásvédelmi jelszó a módosítást korlátozza anélkül, hogy a tartalmat titkosítaná.

Ellenőrizhetek egy nyitó jelszót anélkül, hogy az összes diát betölteném?

Igen. Szerezd meg a prezentáció információit, ellenőrizd, hogy van‑e nyitó jelszavas védelem, és validáld a jelszót a teljes prezentációs példány létrehozása előtt.

Olvashat‑e egy alkalmazás metaadatokat a nyitó jelszó nélkül?

Igen, de csak akkor, ha a prezentációt úgy titkosították, hogy a dokumentumtulajdonságok titkosítása ki van kapcsolva. Ebben az esetben az alkalmazásnak a csak dokumentumtulajdonságokra korlátozott betöltési módot kell használnia, amelyet a Manage Presentation Properties leír.

Támogatják‑e a jelszó‑ellenőrzési munkafolyamatok mind a PPT, mind a PPTX formátumot?

Igen. A fájlútvonal és a stream‑alapú jelszó‑észlelés és –ellenőrzés ugyanúgy működik PPT és PPTX prezentációk esetén.