Java API для шифрования / дешифрования PDF-файлов - PullRequest
7 голосов
/ 09 сентября 2010

Мне нужно зашифровать и расшифровать PDF-файлы.Существует ли бесплатный или недорогой Java API, который это делает?В основном мне нужно скрыть файлы от обычных пользователей.Любое другое предложение о достижении этого программно?

Спасибо, Deep

Ответы [ 3 ]

7 голосов
/ 09 сентября 2010

Использование iText :

  // Assuming you provide the following yourself:
  File inputFile; 
  File outputFile;
  String userPassword;
  String ownerPassword;
  // A bit-field containing file permissions.
  int permissions = PDFWriter.ALLOW_PRINTING | PDFWriter.ALLOW_COPY;

  PdfReader reader = new PdfReader(inputFile);
  PdfEncryptor.encrypt(reader, new FileOutputStream(outputFile),
      ENCRYPTION_AES128, userPassword, ownerPassword, 
      permissions);

Вот API для PDFEncryptor и PDFWriter (для разрешений).

7 голосов
/ 02 апреля 2012

Использование PDFBox (на основе Decrypt.java код):

PDDocument document = null;

try
{
    document = PDDocument.load( infile );

    if( document.isEncrypted() )
    {
        DecryptionMaterial decryptionMaterial = null;
        decryptionMaterial = new StandardDecryptionMaterial(password);
        document.openProtection(decryptionMaterial);
        AccessPermission ap = document.getCurrentAccessPermission();
        if(ap.isOwnerPermission())
        {
            document.setAllSecurityToBeRemoved(true);
            document.save( outfile );
        }
        else
        {
            throw new IOException(
            "Error: You are only allowed to decrypt a document with the owner password." );
        }
    }
    else
    {
        System.err.println( "Error: Document is not encrypted." );
    }
}
finally
{
    if( document != null )
    {
        document.close();
    }
}
5 голосов
/ 09 сентября 2010

iText поддерживает шифрование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...