Security
AESCipher
AESCipher implementiert AES-Verschlüsselung im CBC-Modus für Byte-Arrays, die in PDF-Dokumenten eingebettet sind.
byte[] key = new byte[32]; // fill with your own 128, 192, or 256-bit key material
byte[] data = "sensitive data".getBytes();
byte[] ciphertext = AESCipher.encrypt(key, data);
byte[] plaintext = AESCipher.decrypt(key, ciphertext);Für deterministische Verschlüsselung mit einem expliziten Initialisierungsvektor:
byte[] iv = new byte[16]; // 128-bit IV
byte[] ciphertext = AESCipher.encryptWithIV(key, iv, data);
byte[] plaintext = AESCipher.decryptWithIV(key, iv, ciphertext);PdfFileSecurity
PdfFileSecurity verwaltet die passwortbasierte Verschlüsselung auf Dokumentenebene und Zugriffsberechtigungen. Die encryptFile()-Methode akzeptiert ein Benutzerpasswort, ein Eigentümerpasswort, ein DocumentPrivilege-Objekt und die Schlüssellänge.
try (PdfFileSecurity security = new PdfFileSecurity("input.pdf", "secured.pdf")) {
DocumentPrivilege priv = DocumentPrivilege.getForbidAll();
priv.setAllowPrint(true);
security.encryptFile("userPass", "ownerPass", priv, KeySize.x256);
}decryptFile(ownerPassword) entfernt die Verschlüsselung aus einem verschlüsselten Dokument.
DocumentPrivilege
DocumentPrivilege repräsentiert die Berechtigungsflags für das verschlüsselte Dokument. Verwenden Sie getAllowAll(), um alle Berechtigungen zu gewähren, getForbidAll(), um alle zu verweigern, oder setzen Sie einzelne Berechtigungen über setAllowPrint(), setAllowModifyContents(), setAllowCopy() und setAllowModifyAnnotations().
Algorithmus-Enum
Das Algorithm-Enum wählt die kryptografische Algorithmusfamilie aus:
Algorithm.RC4— veraltete RC4 StromchiffreAlgorithm.AES— AES Blockchiffre (empfohlen)