Jelszóval védett bemutatók Java-ban
Áttekintés
A megnyitási jelszó titkosítja a bemutatót. A helyes jelszó szükséges a bemutató tartalmának betöltéséhez és megtekintéséhez, ezért ez a védelem bizalmasságot biztosít.
A megnyitási jelszó különbözik az í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 meg a bemutató betöltését. A bemutatók módosításához használt jelszavak kezeléséhez lásd a Írásvédett bemutatók oldalt.
Az alábbi munkafolyamatok PPT és PPTX bemutatókra egyaránt vonatkoznak. A példák mindkét formátumot használják, ahol a fájlalapú és az adatfolyam‑alapú viselkedés fontos.
Titkosítás bemutató megnyitási jelszóval
Használja a IProtectionManager.encrypt metódust a megnyitási jelszó hozzárendeléséhez. Ezután használja a IPresentation.save metódust a titkosított bemutató mentéséhez.
A következő példa titkosít egy PPTX bemutatót:
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();
}
Dokumentumtulajdonságok nyilvános tartása
Alapértelmezés szerint az Aspose.Slides a dokumentumtulajdonságokat is belefoglalja a bemutató titkosításába. A IProtectionManager.setEncryptDocumentProperties metódus ezt a viselkedést a dia‑tartalom titkosításától függetlenül szabályozza. Hívja meg a false értéket az IProtectionManager.encrypt meghívása előtt, amikor egy indexelési, osztályozási, keresési vagy dokumentumkezelő rendszernek a metafájlok jelszó nélkül kell olvasnia.
A következő példa titkosított PPTX bemutatót hoz létre, miközben a beépített dokumentumtulajdonságokat nyilvános állapotban hagyja:
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();
}
false érték átadása a IProtectionManager.setEncryptDocumentProperties metódusnak nem teszi a diákat, mesteroldalakat, elrendezéseket, alakzatokat, médiát vagy más bemutatótartalmat nyilvánossá. Csak a dokumentumtulajdonságokra hat. Ezeknek a tulajdonságoknak a jelszó nélküli olvasásához lásd a Bemutató tulajdonságok kezelése oldalt.
Titkosított bemutató betöltése
Állítsa a ILoadOptions.setPassword értékét a megnyitási jelszóra, és adja át a beállításokat a Presentation osztálynak a fájl betöltésekor. A betöltés meghiúsul, ha megnyitási jelszó szükséges, de a megadott jelszó hiányzik vagy helytelen.
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 {
// Munkáljon a visszafejtett bemutatóval.
} finally {
presentation.dispose();
}
Titkosítás eltávolítása a bemutatóból
Töltse be a bemutatót a megnyitási jelszóval, hívja meg a IProtectionManager.removeEncryption metódust, majd mentse az eredményt. A mentett bemutató ezután jelszó nélkül betölthető.
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();
}
Megnyitási jelszó érvényesítése betöltés előtt
Használja a IPresentationFactory.getPresentationInfo metódust a IPresentationInfo beszerzéséhez anélkül, hogy teljes bemutató‑példányt hozna létre. Ellenőrizze a IPresentationInfo.isPasswordProtected értékét, mielőtt jelszót kérne vagy érvényesítene. Ha védelem van jelen, érvényesítse a megadott értéket a IPresentationInfo.checkPassword metódussal.
Fájlútvonal munkafolyamat
A következő példa validál egy megnyitási jelszót egy PPTX fájlhoz, átadja a validált értéket az ILoadOptions.setPassword metódusnak, majd betölti a teljes bemutatót:
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();
}
}
Adatfolyam munkafolyamat
Az IPresentationFactory.getPresentationInfo adatfolyam‑túlterhelése ugyanazt a munkafolyamatot biztosítja. Állítsa vissza a kereshető adatfolyam pozícióját, mielőtt a teljes bemutatót betöltené ebből az adatfolyamból.
A következő példa PPT fájlt használ:
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();
}
checkPassword visszatérési értékek
Az IPresentationInfo.checkPassword true‑t ad vissza csak akkor, ha a bemutató megnyitási jelszóval védett és a megadott jelszó helyes. false‑t ad az alábbi esetekben:
- A jelszó helytelen.
- A bemutató nem rendelkezik megnyitási jelszóval.
- A megadott jelszó
nullvagy üres.
A viselkedés PPT és PPTX bemutatók esetén is ugyanaz.
Ellenőrizze, hogy a betöltött bemutató titkosított-e
A helyes jelszóval történő betöltés után vizsgálja meg az IProtectionManager.isEncrypted állapotát, hogy megerősítse a forrás‑bemutató titkosítását. A megnyitási jelszóval való védelem felismeréséhez a betöltés előtt használja a IPresentationInfo.isPasswordProtected értéket, ahogy fentebb is bemutattuk.
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();
}
Biztonsági ajánlások
Biztonság
Ne naplózza a megnyitási jelszavakat, és ne helyezze őket diagnosztikai üzenetekbe. Kerülje a szükségtelen, ismételt érvényesítési kísérleteket, tartsa a jelszavakat a memóriában csak a szükséges ideig, és használja újra a sikeres érvényesítés eredményét, ha azonnal betölti a bemutatót.
A nyilvános dokumentumtulajdonságok felfedhetik a szerző nevét, címét, tárgyát, kulcsszavait, a vállalati információkat, megjegyzéseket és egyedi értékeket, még akkor is, ha a bemutató tartalma titkosított. Titkosítsa az érzékeny metaadatokat a bemutatóval együtt. A tulajdonságok nyilvánosra hagyása csak akkor legyen kifejezett döntés, ha a rendszereknek indexelni, osztályozni, keresni vagy kezelni kell a fájlt megnyitási jelszó nélkül.
Bemutató jelszóval való védelme online
- Nyissa meg az Aspose.Slides Lock alkalmazást.
- Válassza ki vagy töltse fel a bemutatót.
- Adjon meg egy jelszót a megtekintés védelméhez.
- Opcionálisan adjon meg külön jelszót a szerkesztés védelméhez.
- Alkalmazza a védelmet, és töltse le a kapott fájlt.
GYIK
Mi a különbség a megnyitási jelszó és az írásvédelmi jelszó között?
A megnyitási jelszó titkosítja a bemutatót, és a tartalom betöltéséhez szükséges. Az írásvédelmi jelszó korlátozza a módosítást anélkül, hogy titkosítaná a tartalmat.
Érvényesíthetem a megnyitási jelszót anélkül, hogy az összes diát betölteném?
Igen. Szerezze be a bemutató információit, ellenőrizze, hogy van‑e megnyitási jelszós védelem, és validálja a jelszót a teljes bemutató‑példány létrehozatala előtt.
Olvashat‑e egy alkalmazás metaadatokat a megnyitási jelszó nélkül?
Igen, de csak akkor, ha a bemutató dokumentumtulajdonság‑titkosítása le van tiltva. Ebben az esetben az alkalmazásnak a Bemutató tulajdonságok kezelése leírt módon kell a csak dokumentumtulajdonságokra korlátozott betöltési módot használni.
Támogatják a jelszó‑ellenőrző munkafolyamatok a PPT és PPTX formátumokat is?
Igen. A fájl‑útvonal és az adatfolyam‑alapú jelszó‑detekció és validálás ugyanúgy működik PPT és PPTX bemutatók esetén.