Zabezpiecz prezentacje hasłem na Androidzie

Przegląd

Hasło otwierające szyfruje prezentację. Poprawne hasło jest wymagane do załadowania i wyświetlenia treści prezentacji, więc ta ochrona zapewnia poufność.

Hasło otwierające różni się od hasła ochrony przed zapisem. Ochrona przed zapisem ogranicza modyfikację, ale nie szyfruje treści ani nie uniemożliwia załadowania prezentacji. Aby zarządzać hasłami służącymi do modyfikacji prezentacji, zobacz Write-Protect Presentations.

Poniższe przepływy pracy mają zastosowanie zarówno do prezentacji PPT, jak i PPTX. Przykłady używają obu formatów, gdy istotne jest ich zachowanie oparte na pliku i strumieniu.

Zaszyfruj prezentację przy użyciu hasła otwierającego

Użyj IProtectionManager.encrypt aby przypisać hasło otwierające. Następnie użyj IPresentation.save, aby zapisać zaszyfrowaną prezentację.

Poniższy przykład szyfruje prezentację PPTX:

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

Zachowaj właściwości dokumentu publiczne

Domyślnie Aspose.Slides uwzględnia właściwości dokumentu w szyfrowaniu prezentacji. Metoda IProtectionManager.setEncryptDocumentProperties kontroluje to zachowanie niezależnie od szyfrowania zawartości slajdów. Przekaż false przed wywołaniem IProtectionManager.encrypt, gdy system indeksowania, klasyfikacji, wyszukiwania lub zarządzania dokumentami musi odczytać metadane bez hasła otwierającego.

Poniższy przykład tworzy zaszyfrowaną prezentację PPTX, pozostawiając wbudowane właściwości dokumentu publiczne:

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

Przekazanie false do IProtectionManager.setEncryptDocumentProperties nie powoduje, że slajdy, mastery, układy, kształty, multimedia ani inna zawartość prezentacji stają się publiczne. Dotyczy to wyłącznie właściwości dokumentu. Aby odczytać te właściwości bez ładowania zaszyfrowanej treści, zobacz Manage Presentation Properties.

Załaduj zaszyfrowaną prezentację

Ustaw ILoadOptions.setPassword na hasło otwierające i przekaż opcje do Presentation podczas ładowania pliku. Ładowanie nie powiedzie się, gdy wymagane jest hasło otwierające, ale podane hasło jest brakujące lub nieprawidłowe.

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 {
    // Pracuj z odszyfrowaną prezentacją.
} finally {
    presentation.dispose();
}

Usuń szyfrowanie z prezentacji

Załaduj prezentację z jej hasłem otwierającym, wywołaj IProtectionManager.removeEncryption, a następnie zapisz wynik. Zapisana prezentacja może być później ładowana bez hasła.

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

Sprawdź hasło otwierające przed załadowaniem

Użyj IPresentationFactory.getPresentationInfo, aby uzyskać IPresentationInfo bez tworzenia pełnej instancji prezentacji. Sprawdź IPresentationInfo.isPasswordProtected przed żądaniem lub weryfikacją hasła. Gdy ochrona jest obecna, zweryfikuj podaną wartość za pomocą IPresentationInfo.checkPassword.

Przepływ pracy ze ścieżką do pliku

Poniższy przykład weryfikuje hasło otwierające dla pliku PPTX, przekazuje zweryfikowaną wartość do ILoadOptions.setPassword, a następnie ładuje pełną prezentację:

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

Przepływ pracy ze strumieniem

Przeciążenie strumieniowe IPresentationFactory.getPresentationInfo zapewnia ten sam przepływ pracy. Zresetuj pozycję strumienia umożliwiającego przeszukiwanie przed załadowaniem pełnej prezentacji z tego strumienia.

Poniższy przykład używa pliku 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();
}

Wartości zwracane przez checkPassword

IPresentationInfo.checkPassword zwraca true tylko wtedy, gdy prezentacja posiada hasło otwierające i podane hasło jest poprawne. Zwraca false w każdym z następujących przypadków:

  • Hasło jest nieprawidłowe.
  • Prezentacja nie posiada hasła otwierającego.
  • Podane hasło jest null lub puste.

Zachowanie jest takie samo dla prezentacji PPT i PPTX.

Sprawdź, czy załadowana prezentacja jest zaszyfrowana

Po załadowaniu prezentacji przy użyciu poprawnego hasła, sprawdź IProtectionManager.isEncrypted aby potwierdzić, że źródłowa prezentacja była zaszyfrowana. Aby wykryć ochronę hasłem otwierającym przed ładowaniem, użyj IPresentationInfo.isPasswordProtected jak pokazano powyżej.

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

Zalecenia bezpieczeństwa

Zabezpiecz prezentację hasłem online

  1. Otwórz aplikację Aspose.Slides Lock.
  2. Wybierz lub prześlij prezentację.
  3. Wprowadź hasło zabezpieczające wyświetlanie.
  4. Opcjonalnie wprowadź osobne hasło zabezpieczające edycję.
  5. Zastosuj ochronę i pobierz otrzymany plik.

FAQ

What is the difference between an opening password and a write-protection password?

Hasło otwierające szyfruje prezentację i jest wymagane do załadowania jej zawartości. Hasło ochrony przed zapisem ogranicza modyfikację bez szyfrowania treści.

Can I validate an opening password without loading all slides?

Tak. Uzyskaj informacje o prezentacji, sprawdź, czy istnieje ochrona hasłem otwierającym, i zweryfikuj hasło przed utworzeniem pełnej instancji prezentacji.

Can an application read metadata without the opening password?

Tak, ale tylko wtedy, gdy prezentacja została zaszyfrowana z wyłączonym szyfrowaniem właściwości dokumentu. Aplikacja musi wtedy użyć trybu ładowania wyłącznie właściwości dokumentu opisanego w Manage Presentation Properties.

Do the password-checking workflows support both PPT and PPTX?

Tak. Wykrywanie i weryfikacja hasła oparte na ścieżce do pliku oraz strumieniu zachowują się tak samo dla prezentacji PPT i PPTX.