Security

AESCipher

AESCipher implementa la crittografia AES in modalità CBC per array di byte incorporati nei documenti PDF.

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);

Per la crittografia deterministica con un vettore di inizializzazione esplicito:

byte[] iv = new byte[16]; // 128-bit IV
byte[] ciphertext = AESCipher.encryptWithIV(key, iv, data);
byte[] plaintext  = AESCipher.decryptWithIV(key, iv, ciphertext);

PdfFileSecurity

PdfFileSecurity gestisce la crittografia a livello di documento con password e le autorizzazioni di accesso. Il metodo encryptFile() accetta una password utente, una password proprietario, un oggetto DocumentPrivilege e la dimensione della chiave.

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) rimuove la crittografia da un documento cifrato.

DocumentPrivilege

DocumentPrivilege rappresenta i flag di permesso per il documento crittografato. Usa getAllowAll() per concedere tutti i permessi, getForbidAll() per negarli tutti, oppure imposta i permessi individuali tramite setAllowPrint(), setAllowModifyContents(), setAllowCopy() e setAllowModifyAnnotations().

Enum Algoritmo

L’enumerazione Algorithm seleziona la famiglia di algoritmi crittografici:

  • Algorithm.RC4 — cifrario a flusso RC4 legacy
  • Algorithm.AES — cifrario a blocchi AES (consigliato)

Vedi anche

 Italiano