Java'da Sunumları Şifreyle Koruma
Genel Bakış
Açma şifresi bir sunumu şifreler. Doğru şifre, sunum içeriğini yüklemek ve görüntülemek için gereklidir, bu da korumanın gizliliğini sağlar.
Açma şifresi, yazma koruma şifresinden farklıdır. Yazma koruması değişikliği kısıtlar ancak içeriği şifrelemez ve sunumun yüklenmesini engellemez. Sunumları değiştirmek için şifreleri yönetmek üzere Write-Protect Presentations sayfasına bakın.
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ın önemli olduğu durumlarda her iki formatı da kullanır.
Açma Şifresi ile Sunumu Şifreleme
IProtectionManager.encrypt metodunu kullanarak bir açma şifresi atayın. Ardından şifrelenmiş sunumu kalıcı hâle getirmek için IPresentation.save metodunu kullanın.
Aşağıdaki örnek bir PPTX sunumunu şifreler:
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();
}
Belge Özelliklerini Genel Tutma
Varsayılan olarak, Aspose.Slides belge özelliklerini sunum şifrelemesine dahil eder. IProtectionManager.setEncryptDocumentProperties yöntemi bu davranışı slayt içeriği şifrelemesinden bağımsız olarak kontrol eder. Bir indeksleme, sınıflandırma, arama veya belge yönetim sistemi açma şifresi olmadan üst verileri okuması gerektiğinde, IProtectionManager.encrypt metodunu çağırmadan önce false geçin.
Aşağıdaki örnek, gömülü belge özellikleri genel bırakılarak şifrelenmiş bir PPTX sunumu oluşturur:
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 değerini IProtectionManager.setEncryptDocumentProperties metoduna geçirmek, slaytları, ana slaytları, düzenleri, şekilleri, medyayı veya diğer sunum içeriğini genel hâle getirmez. Yalnızca belge özelliklerini etkiler. Şifreli içeriği yüklemeden bu özellikleri okumak için Manage Presentation Properties sayfasına bakın.
Şifreli Sunumu Yükleme
ILoadOptions.setPassword ayarını açma şifresi olarak belirleyin ve dosya yüklenirken bu seçenekleri Presentation metoduna iletin. Açma şifresi gerekli olduğu halde sağlanan şifre eksik veya yanlışsa yükleme başarısız olur.
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 {
// Şifre çözülen sunum üzerinde çalış.
} finally {
presentation.dispose();
}
Sunumdan Şifreyi Kaldırma
Sunumu açma şifresiyle yükleyin, IProtectionManager.removeEncryption metodunu çağırın ve sonucu kaydedin. Kaydedilen sunum daha sonra şifre olmadan yüklenebilir.
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();
}
Yüklemeden Önce Açma Şifresini Doğrulama
IPresentationFactory.getPresentationInfo metodunu kullanarak tam bir sunum örneği oluşturmadan IPresentationInfo alın. Şifre talep etmeden veya doğrulamadan önce IPresentationInfo.isPasswordProtected kontrol edin. Koruma mevcutsa, sağlanan değeri IPresentationInfo.checkPassword ile doğrulayın.
Dosya Yolu İş Akışı
Aşağıdaki örnek bir PPTX dosyası için açma şifresini doğrular, doğrulanan değeri ILoadOptions.setPassword metoduna aktarır ve ardından tam sunumu yükler:
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();
}
}
Akış İş Akışı
IPresentationFactory.getPresentationInfo metodunun akış aşırı yüklemesi aynı iş akışını sunar. O akıştan tam sunumu yüklemeden önce, aranabilir bir akışın konumunu sıfırlayın.
Aşağıdaki örnek bir PPT dosyası kullanır:
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 Dönüş Değerleri
IPresentationInfo.checkPassword yalnızca sunumda açma şifresi olduğu ve sağlanan şifre doğru olduğunda true döner. Aşağıdaki durumların her birinde false döner:
- Şifre yanlıştır.
- Sunumda açma şifresi yoktur.
- Sağlanan şifre
nullveya boştur
Davranış PPT ve PPTX sunumları için aynı şekildedir.
Yüklenen Sunumun Şifreli Olup Olmadığını Kontrol Etme
Doğru şifreyle bir sunumu yükledikten sonra, kaynak sunumun şifrelenip şifrelenmediğini doğrulamak için IProtectionManager.isEncrypted yöntemini inceleyin. Yüklemeden önce açma şifresi korumasını tespit etmek için yukarıda gösterildiği gibi IPresentationInfo.isPasswordProtected kullanın.
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();
}
Güvenlik Önerileri
Güvenlik
Açma şifrelerini günlük dosyalarına kaydetmeyin ya da tanılayıcı mesajlarda kullanmayın. Gereksiz tekrar doğrulama denemelerinden kaçının, şifreleri yalnızca gerektiği sürece bellekte tutun ve sunumu hemen yüklerken başarılı bir doğrulama sonucunu yeniden kullanın.
Genel belge özellikleri, sunum içeriği şifreli olsa da yazar adlarını, başlıkları, konuları, anahtar kelimeleri, şirket bilgilerini, yorumları ve özel değerleri ifşa edebilir. Hassas üst verileri sunumla birlikte şifreleyin. Özelliklerin genel bırakılması, yalnızca sistemlerin dosyayı açma şifresi olmadan indekslemesi, sınıflandırması, araması veya yönetmesi gerektiğinde alınacak açık bir karar olmalıdır.
Sunumu Çevrimiçi Şifreleme
- Aspose.Slides Lock uygulamasını açın.
- Sunumu seçin veya yükleyin.
- Görüntüleme koruması için bir şifre girin.
- İsteğe bağlı olarak düzenleme koruması için ayrı bir şifre girin.
- Koruma uygulayın ve ortaya çıkan dosyayı indirin.
SSS
Açma şifresi ile yazma koruma şifresi arasındaki fark nedir?
Açma şifresi sunumu şifreler ve içeriğini yüklemek için gereklidir. Yazma koruma şifresi ise içeriği şifrelemeden değişikliği kısıtlar.
Tüm slaytları yüklemeden açma şifresini doğrulayabilir miyim?
Evet. Sunum bilgilerini alın, açma şifresi korumasının varlığını kontrol edin ve tam bir sunum örneği oluşturmadan önce şifreyi doğrulayın.
Bir uygulama açma şifresi olmadan üst verileri okuyabilir mi?
Evet, ancak yalnızca sunum belge‑özelliği şifrelemesi devre dışı bırakılarak şifrelenmişse mümkündür. Bu durumda uygulama, Manage Presentation Properties bölümünde açıklanan yalnızca belge‑özelliklerini yükleme modunu kullanmalıdır.
Şifre kontrol iş akışları hem PPT hem PPTX’i destekliyor mu?
Evet. Dosya yolu ve akış tabanlı şifre tespiti ve doğrulama, PPT ve PPTX sunumları için aynı şekilde çalışır.