حماية ملفات PDF في Java
Contents
[
Hide
]
يوفر Aspose.PDF for Java عدة واجهات برمجة تطبيقات لتأمين ملفات PDF باستخدام كلمات المرور والإذن.
حماية مستندات PDF في Java
الأمثلة في ProtectDocumentExamples.java إظهار كيفية:
- طبّق التشفير على Document مع كلمات مرور المستخدم والمالك.
- قيّد الأذونات باستخدام DocumentPrivilege.
- اختر CryptoAlgorithm للمحمى Document.
- فك تشفير محمي Document.
- تغيير كلمات المرور الحالية على Document.
- اختبر كلمات المرور المرشحة باستخدام PdfFileInfo و Document.
تشفير ملف PDF مع امتيازات مقيدة
public static void encryptPassword(Path inputFile, Path outputFile) {
Document document = new Document(inputFile.toString());
try {
DocumentPrivilege documentPrivilege = DocumentPrivilege.getForbidAll();
documentPrivilege.setAllowScreenReaders(true);
document.encrypt(
USER_PASSWORD,
OWNER_PASSWORD,
documentPrivilege,
CryptoAlgorithm.AESx128,
false);
document.save(outputFile.toString());
} finally {
document.close();
}
}
تشفير ملف PDF
public static void encryptPdfFile(Path inputFile, Path outputFile) {
Document document = new Document(inputFile.toString());
try {
document.encrypt(
USER_PASSWORD,
OWNER_PASSWORD,
DocumentPrivilege.getAllowAll(),
CryptoAlgorithm.RC4x128,
false);
document.save(outputFile.toString());
} finally {
document.close();
}
}
فك تشفير ملف PDF محمي
public static void decryptPdfFile(Path inputFile, Path outputFile) {
Document document = new Document(inputFile.toString(), USER_PASSWORD);
try {
document.decrypt();
document.save(outputFile.toString());
} finally {
document.close();
}
}
تغيير كلمات المرور
public static void changePassword(Path inputFile, Path outputFile) {
Document document = new Document(inputFile.toString(), OWNER_PASSWORD);
try {
document.changePasswords(OWNER_PASSWORD, "newuser", "newowner");
document.save(outputFile.toString());
} finally {
document.close();
}
}
تحديد كلمة المرور الصحيحة من القائمة
public static void determineCorrectPasswordFromList(Path inputFile) {
try (PdfFileInfo info = new PdfFileInfo(inputFile.toString())) {
System.out.println("File is password protected: " + info.isEncrypted());
}
String[] passwords = {"test", "test1", "test2", "test3", USER_PASSWORD};
for (String password : passwords) {
try {
Document document = new Document(inputFile.toString(), password);
try {
int pageCount = document.getPages().size();
if (pageCount > 0) {
System.out.println("Password '" + password + "' is correct. Pages: " + pageCount);
}
} finally {
document.close();
}
} catch (InvalidPasswordException ex) {
System.out.println("Wrong password: " + password);
}
}
}