Я работал над установкой паролей для PDF-файлов, чтобы предотвратить копирование / вставку и разрешить печать, добавить водяные знаки и установить пароль владельца, чтобы предотвратить дальнейшие изменения.
Все работает хорошо. как и ожидалось, проблем не возникло.
Затем я загрузил это бесплатное средство для удаления pdf на 15 дней, a-pdf. В мгновение ока он снимает всю защиту, независимо от сложности пароля (при использовании 50 символов будут все виды символов).
Я вижу, что в itextPDF есть другие методы для шифрования документа. Я использовал следующее:
File f = new File("C:/TEMP/zip/waterMarked.pdf");
String hardPassword = "D 5BaIZQ@ CqAk+NQCW)7Dkgb@i&02ifu!2TMX*d 0TGK(j(Kq";
byte[] hardPasswordByte = hardPassword.getBytes();
PdfReader reader = new PdfReader("C:/TEMP/zip/Original_document-9.pdf");
FileOutputStream out = new FileOutputStream(f);
PdfStamper stamp = new PdfStamper(reader, out);
//first argument is the user password. If set to something it asks for password when opening file, not wanted.
stamp.setEncryption(null, hardPasswordByte, PdfWriter.ALLOW_PRINTING, true);
//do stuff on the stamper, save file.
Кто-нибудь знает лучший способ защиты PDF-документов от кода Java?