Java'da Yazma Koruması ile Sunumları Koruma

Giriş

Yazma koruması şifresi bir sunumun değiştirilmesini kısıtlar ancak içeriğini şifrelemez. Kullanıcılar, şifre olmadan yazma korumalı bir sunumu yükleyebilir ve görüntüleyebilir. Uygulamaya bağlı olarak, içeriği düzenleyebilir ve farklı bir adla kaydedebilirler, bu nedenle yazma koruması gizlilik mekanizması olarak değerlendirilmemelidir.

Açma şifresi farklı bir amaç hizmet eder: sunumu şifreler ve içeriğini yüklemek için gereklidir. Bir sunumu şifrelemek veya açma şifresini doğrulamak için Password-Protect Presentations bölümüne bakın.

Bu makaledeki çalışma akışları hem PPT hem de PPTX sunumları için geçerlidir. Örnekler PPTX dosyalarını kullanır; PPT olarak kaydederken .ppt uzantısını ve ilgili PPT kaydetme biçimini kullanın.

Sunuma Yazma Koruması Ayarlama

Bir sunumu değiştirmek için şifre atamak amacıyla IProtectionManager.setWriteProtection yöntemini kullanın. Sunumu kaydetmek koruma ayarını kalıcı hâle getirir.

Aşağıdaki örnek bir PPTX sunumuna yazma koruması ekler:

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

Presentation presentation = new Presentation("pres.pptx");
try {
    presentation.getProtectionManager().setWriteProtection("modify_password");
    presentation.save("write-protected-pres.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Yazma Koruması Olan Sunumu Yükleme

Yazma koruması sunum içeriğini şifrelemediği için sunumu yüklemek için şifre gerekmez. Şifre yalnızca korumalı sunumu değiştirme yetkisini doğrularken relevandır.

import com.aspose.slides.Presentation;

Presentation presentation = new Presentation("write-protected-pres.pptx");
try {
    System.out.println("Slide count: " + presentation.getSlides().size());
} finally {
    presentation.dispose();
}

Yazma koruması şifresini ILoadOptions.setPassword metoduna geçirmeyin. Bu metod şifreli içerik için bir açma şifresi alır. Bir sunumda her iki koruma türü de varsa, onu yüklemek için açma şifresini sağlayın ve yazma koruması şifresini ayrı olarak işleyin.

Sunumdan Yazma Korumasını Kaldırma

IProtectionManager.removeWriteProtection yöntemini kullanarak değişiklik kısıtlamasını kaldırın, ardından sunumu kaydedin.

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

Presentation presentation = new Presentation("write-protected-pres.pptx");
try {
    presentation.getProtectionManager().removeWriteProtection();
    presentation.save("write-protection-removed.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Sunumun Yazma Koruması Olup Olmadığını Kontrol Etme

Bir dosyayı tam bir Presentation örneği oluşturmadan incelemek için IPresentationFactory.getPresentationInfo metodunu çağırın ve IPresentationInfo.isWriteProtected özelliğine bakın. Metot NullableBool kullanır ve yazma koruması tespit edildiğinde NullableBool.True döndürür.

import com.aspose.slides.IPresentationInfo;
import com.aspose.slides.NullableBool;
import com.aspose.slides.PresentationFactory;

IPresentationInfo presentationInfo = PresentationFactory.getInstance().getPresentationInfo("write-protected-pres.pptx");

if (presentationInfo.isWriteProtected() == NullableBool.True) {
    System.out.println("The presentation is write protected.");
} else {
    System.out.println("Write protection was not detected.");
}

IPresentationFactory.getPresentationInfo metodunun akış aşırı yüklemesi, akış olarak sağlanan bir sunum için aynı bilgileri sunar.

Yazma Koruma Şifresini Doğrulama

Tam bir sunumu yüklemeden bir değişiklik şifresini doğrulamak için IPresentationInfo.checkWriteProtection metodunu kullanın. Uygulamanın şifre talep etmesi veya doğrulaması yalnızca yazma koruması mevcut olduğunda gerçekleşsin diye önce IPresentationInfo.isWriteProtected kontrol edin.

import com.aspose.slides.IPresentationInfo;
import com.aspose.slides.NullableBool;
import com.aspose.slides.PresentationFactory;

IPPresentationInfo presentationInfo = PresentationFactory.getInstance().getPresentationInfo("write-protected-pres.pptx");

if (presentationInfo.isWriteProtected() != NullableBool.True) {
    System.out.println("The presentation is not write protected.");
} else if (presentationInfo.checkWriteProtection("modify_password")) {
    System.out.println("The write-protection password is correct.");
} else {
    System.out.println("The write-protection password is incorrect.");
}

IPresentationInfo.checkWriteProtection sadece yazma koruma şifresini doğrular. Açma şifresini doğrulamaz ve şifreli içeriğin yüklenip yüklenemeyeceğini belirlemez. Buna karşılık, IPresentationInfo.checkPassword sadece açma şifresini doğrular. Tam bir sunum zaten yüklendiyse, IProtectionManager.checkWriteProtection koruma yöneticisi aracılığıyla eşdeğer bir yazma koruma kontrolü sağlar.

Üretim uygulamalarında şifreleri loglamayın veya tanı mesajlarına dahil etmeyin. Gereksiz tekrar doğrulama denemelerinden kaçının ve şifreleri bellekte yalnızca ihtiyaç duyulduğu süre kadar tutun.

SSS

Yazma koruması bir sunumu şifreler mi?

Hayır. Değişikliği kısıtlar ancak sunum içeriğini yükleme ve görüntüleme için erişilebilir bırakır.

Yazma koruma şifresi bir sunumu açmak için gerekli mi?

Hayır. Şifreli sunum içeriğini yüklemek için yalnızca bir açma şifresi gerekir.

Bir sunum hem açma şifresi hem de yazma koruma şifresi taşıyabilir mi?

Evet. Şifreli sunumu açmak için yükleme seçenekleri aracılığıyla açma şifresini sağlayın ve değişiklik yetkisi gerektiğinde yazma koruma şifresini ayrı olarak doğrulayın.