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 Stromchiffre
  • Algorithm.AES — AES Blockchiffre (empfohlen)

Siehe auch

 Deutsch