Securitate

AESCipher (sistemul de codare a datelor)

AESCipher implementă criptarea AES în modul CBC pentru matricele de bați integrate în Documente PDF.

byte[] key = ...; // 128, 192, or 256-bit key
byte[] data = "sensitive data".getBytes();

byte[] ciphertext = AESCipher.encrypt(key, data);
byte[] plaintext  = AESCipher.decrypt(key, ciphertext);

Pentru criptarea deterministă cu un vector de inițiere explicit:

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

PdfFileSecurity

PdfFileSecurity gestionează criptarea de parole la nivelul documentelor și permisiunile de acces. În ceea ce priveşte encryptFile() metoda acceptă o parolă de utilizator, un proprietar de parolul;, DocumentPrivilege obiectul și dimensiunea cheii.

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) elimină criptarea dintr-un document criptat.

DocumentPrivilege

DocumentPrivilege reprezintă semnele de autorizare pentru documentul criptat. Utilizare: getAllowAll() să acorde toate autorizațiile, getForbidAll() să neagă totul, sau Setarea permisiunilor individuale prin intermediul: setAllowPrint(), setAllowModifyContents(), setAllowCopy(), și setAllowModifyAnnotations().

Algoritmul Enum

În ceea ce priveşte Algorithm enum selectează familia de algoritmi criptografici:

  • Algorithm.RC4 criptare tradițională RC4
  • Algorithm.AES Cifrul de bloc AES (recomandat)

Vezi și:

 Română