Security

AESCipher

AESCipher implementuje szyfrowanie AES w trybie CBC dla tablic bajtów osadzonych w dokumentach 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);

Dla deterministycznego szyfrowania z jawnie określonym wektorem inicjalizacji:

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

PdfFileSecurity

PdfFileSecurity zarządza szyfrowaniem hasłem na poziomie dokumentu oraz uprawnieniami dostępu. Metoda encryptFile() przyjmuje hasło użytkownika, hasło właściciela, obiekt DocumentPrivilege oraz rozmiar klucza.

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) usuwa szyfrowanie z zaszyfrowanego dokumentu.

DocumentPrivilege

DocumentPrivilege reprezentuje flagi uprawnień dla szyfrowanego dokumentu. Użyj getAllowAll(), aby przyznać wszystkie uprawnienia, getForbidAll(), aby odmówić wszystkich, lub ustaw indywidualne uprawnienia za pomocą setAllowPrint(), setAllowModifyContents(), setAllowCopy() i setAllowModifyAnnotations().

Enum Algorytmu

Wyliczenie Algorithm wybiera rodzinę algorytmów kryptograficznych:

  • Algorithm.RC4 — starszy szyfr strumieniowy RC4
  • Algorithm.AES — szyfr blokowy AES (zalecany)

Zobacz także

 Polski