Security

AESCipher (АЕСцифр)

AESCipher реалізує шифрування AES в режимі CBC для байтових масивів, вбудованих у 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);

Для детерміністичного шифрування з явною ініціалізацією вектора:

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

PdfFileSecurity (безпека файлів)

PdfFileSecurity керуває шифруванням паролів на рівні документів та дозволами доступу. У. encryptFile() метод приймає пароль користувача, власника;, DocumentPrivilege об’єкт і розмір ключа.

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) видаляє шифрування з зашифрованого документа.

DocumentPrivilege

DocumentPrivilege представляє знаки дозволу для зашифрованого документа. Використання getAllowAll() видавати всі дозволи, getForbidAll() заперечувати все, або встановлення індивідуальних дозволів через: setAllowPrint(), setAllowModifyContents(), setAllowCopy(), і setAllowModifyAnnotations().

Алгоритм Enum

У. Algorithm enum вибирає сім’ю криптографічних алгоритмів:

  • Algorithm.RC4 застарілий шифр потоку RC4
  • Algorithm.AES Блокний шифр AES (рекомендується)

See Also

 Українська