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

 Русский