9
votes

Java API pour chiffrer / décrypter les fichiers PDF

J'ai besoin de chiffrer et de déchiffrer les fichiers PDF. Existe-t-il une API de Java gratuit ou low cost qui fait cela? Fondamentalement, j'ai besoin de masquer des fichiers d'utilisateurs normaux. Toute autre suggestion sur la réalisation de ce problème?

merci, Profond


1 commentaires

Comment envisagez-vous de les montrer à des utilisateurs «anormaux»? Ils devraient apporter leurs clés privées (éventuellement des cartes à puce) avec eux?


3 Réponses :


5
votes

iText prend en charge le cryptage.


0 commentaires

8
votes

en utilisant iText : xxx

voici l'API pour PDFenCryptor et pdfwriter (pour les autorisations).


3 commentaires

Merci Frederik. Pouvez-vous également fournir du code pour déchiffrer le fichier crypté?


Pour quelle version d'ITEXT est viable?


On dirait que ITEXT a changé un peu depuis que cette réponse a été acceptée. Voici Un exemple de crypter et de déchiffrer dans IText 7 . Et ici est l'emplacement mis à jour de l'API Docs.



9
votes

en utilisant pdfbox (basé sur Decrypt.java Code):

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();
    }
}


2 commentaires

Est-il possible sans mot de passe?


@Akashchavda Je suppose que vous êtes obligé de passer le mot de passe PDF crypté, sinon la fonctionnalité de cryptage du PDF serait un non-sens;) Le code ci-dessus utilise simplement des outils standard pour déchiffrer le PDF.