Ochrana prezentací heslem na Androidu

Přehled

Otevírací heslo šifruje prezentaci. Správné heslo je vyžadováno pro načtení a zobrazení obsahu prezentace, takže tato ochrana poskytuje důvěrnost.

Otevírací heslo se liší od hesla pro ochranu proti zápisu. Ochrana proti zápisu omezuje úpravy, ale nešifruje obsah ani nebrání načtení prezentace. Pro správu hesel pro úpravu prezentací viz Write-Protect Presentations.

Níže uvedené postupy platí pro prezentace PPT i PPTX. Příklady používají oba formáty, kde je důležité chování při práci se souborem i se streamem.

Zašifrovat prezentaci pomocí otevíracího hesla

Použijte IProtectionManager.encrypt k přiřazení otevíracího hesla. Poté použijte IPresentation.save k uložení zašifrované prezentace.

Následující příklad zašifruje PPTX prezentaci:

import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;

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

Udržet vlastnosti dokumentu veřejné

Ve výchozím nastavení Aspose.Slides zahrnuje vlastnosti dokumentu do šifrování prezentace. Metoda IProtectionManager.setEncryptDocumentProperties řídí toto chování nezávisle na šifrování obsahu snímků. Před voláním IProtectionManager.encrypt předávejte false, pokud systém pro indexaci, klasifikaci, vyhledávání nebo správu dokumentů musí číst metadata bez otevíracího hesla.

Následující příklad vytvoří zašifrovanou PPTX prezentaci a zachová její vestavěné vlastnosti dokumentu veřejné:

import com.aspose.slides.IDocumentProperties;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;

Presentation presentation = new Presentation();
try {
    IDocumentProperties 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();
}

Předání false metodě IProtectionManager.setEncryptDocumentProperties nezpřístupní snímky, master‑stránky, rozvržení, tvary, média ani jiný obsah prezentace. Ovlivňuje jen vlastnosti dokumentu. Pro čtení těchto vlastností bez načítání zašifrovaného obsahu viz Manage Presentation Properties.

Načíst zašifrovanou prezentaci

Nastavte ILoadOptions.setPassword na otevírací heslo a předávejte možnosti při vytváření instance Presentation během načítání souboru. Načtení selže, pokud je požadováno otevírací heslo a zadané heslo chybí nebo je nesprávné.

import com.aspose.slides.LoadOptions;
import com.aspose.slides.Presentation;

LoadOptions loadOptions = new LoadOptions();
loadOptions.setPassword("open_password");

Presentation presentation = new Presentation("encrypted-pres.pptx", loadOptions);
try {
    // Práce s dešifrovanou prezentací.
} finally {
    presentation.dispose();
}

Odstranit šifrování z prezentace

Načtěte prezentaci s jejím otevíracím heslem, zavolejte IProtectionManager.removeEncryption a výsledek uložte. Uložená prezentace může být následně načtena bez hesla.

import com.aspose.slides.LoadOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;

LoadOptions loadOptions = new LoadOptions();
loadOptions.setPassword("open_password");

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

Ověřit otevírací heslo před načtením

Použijte IPresentationFactory.getPresentationInfo k získání IPresentationInfo bez vytváření kompletní instance prezentace. Před žádostí o heslo nebo jeho ověřením zkontrolujte IPresentationInfo.isPasswordProtected. Pokud je ochrana přítomna, ověřte zadanou hodnotu pomocí IPresentationInfo.checkPassword.

Postup s cestou k souboru

Následující příklad ověří otevírací heslo pro soubor PPTX, předá ověřenou hodnotu metodě ILoadOptions.setPassword a poté načte kompletní prezentaci:

import com.aspose.slides.IPresentationInfo;
import com.aspose.slides.LoadOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.PresentationFactory;

String filePath = "protected-presentation.pptx";
String password = "open_password";
IPresentationInfo presentationInfo = PresentationFactory.getInstance().getPresentationInfo(filePath);

if (!presentationInfo.isPasswordProtected()) {
    System.out.println("The presentation does not have an opening password.");
} else if (!presentationInfo.checkPassword(password)) {
    System.out.println("The opening password is incorrect.");
} else {
    LoadOptions loadOptions = new LoadOptions();
    loadOptions.setPassword(password);

    Presentation presentation = new Presentation(filePath, loadOptions);
    try {
        System.out.println("The presentation was validated and loaded successfully.");
    } finally {
        presentation.dispose();
    }
}

Postup se streamem

Přetížení streamu metody IPresentationFactory.getPresentationInfo poskytuje stejný postup. Před načtením kompletní prezentace ze streamu obnovte pozici vyhledatelného streamu.

Následující příklad používá soubor PPT:

import com.aspose.slides.IPresentationInfo;
import com.aspose.slides.LoadOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.PresentationFactory;
import java.io.FileInputStream;

String password = "open_password";

FileInputStream presentationStream = new FileInputStream("protected-presentation.ppt");
try {
    IPresentationInfo presentationInfo = PresentationFactory.getInstance().getPresentationInfo(presentationStream);

    if (!presentationInfo.isPasswordProtected()) {
        System.out.println("The presentation does not have an opening password.");
    } else if (!presentationInfo.checkPassword(password)) {
        System.out.println("The opening password is incorrect.");
    } else {
        presentationStream.getChannel().position(0);

        LoadOptions loadOptions = new LoadOptions();
        loadOptions.setPassword(password);

        Presentation presentation = new Presentation(presentationStream, loadOptions);
        try {
            System.out.println("The presentation was validated and loaded successfully.");
        } finally {
            presentation.dispose();
        }
    }
} finally {
    presentationStream.close();
}

Návratové hodnoty metody checkPassword

IPresentationInfo.checkPassword vrací true pouze v případě, že prezentace má otevírací heslo a zadané heslo je správné. Vrací false v každém z těchto případů:

  • Heslo je nesprávné.
  • Prezentace nemá otevírací heslo.
  • Zadané heslo je null nebo prázdné.

Chování je stejné pro prezentace PPT i PPTX.

Zkontrolovat, zda je načtená prezentace šifrovaná

Po načtení prezentace se správným heslem zkontrolujte IProtectionManager.isEncrypted a potvrďte, že zdrojová prezentace byla šifrována. Pro detekci ochrany otevíracího hesla před načtením použijte IPresentationInfo.isPasswordProtected, jak bylo uvedeno výše.

import com.aspose.slides.LoadOptions;
import com.aspose.slides.Presentation;

LoadOptions loadOptions = new LoadOptions();
loadOptions.setPassword("open_password");

Presentation presentation = new Presentation("encrypted-pres.pptx", loadOptions);
try {
    boolean isEncrypted = presentation.getProtectionManager().isEncrypted();
    System.out.println("The presentation is encrypted: " + isEncrypted);
} finally {
    presentation.dispose();
}

Doporučení pro zabezpečení

Ochrana prezentace heslem online

  1. Otevřete aplikaci Aspose.Slides Lock.
  2. Vyberte nebo nahrajte prezentaci.
  3. Zadejte heslo pro ochranu zobrazení.
  4. Volitelně zadejte samostatné heslo pro ochranu úprav.
  5. Použijte ochranu a stáhněte výsledný soubor.

Často kladené otázky

Jaký je rozdíl mezi otevíracím heslem a heslem pro ochranu proti zápisu?

Otevírací heslo šifruje prezentaci a je vyžadováno k načtení jejího obsahu. Heslo pro ochranu proti zápisu omezuje úpravy bez šifrování obsahu.

Mohu ověřit otevírací heslo bez načtení všech snímků?

Ano. Získejte informace o prezentaci, zjistěte, zda je přítomna ochrana otevíracím heslem, a ověřte heslo před vytvořením kompletní instance prezentace.

Může aplikace číst metadata bez otevíracího hesla?

Ano, ale jen pokud byla prezentace šifrována s vypnutým šifrováním vlastností dokumentu. Aplikace pak musí použít režim načítání pouze vlastností dokumentu, který je popsán v Manage Presentation Properties.

Podporují pracovní postupy pro kontrolu hesla jak PPT, tak PPTX?

Ano. Detekce a ověření hesla na základě cesty k souboru i streamu fungují stejně pro prezentace PPT i PPTX.