Cet article vous fournit un guide étape par étape et des exemples de code pour chiffrer et déchiffrer des fichiers PDF par programmation en Java.
Dans divers cas, les documents PDF sont cryptés avant d’être partagés entre les parties prenantes. Le cryptage protège le document contre tout accès non autorisé ainsi que contre la falsification du contenu. Il existe plusieurs méthodes courantes pour sécuriser les documents PDF : chiffrer le PDF avec un mot de passe ou limiter les autorisations d’accès de l’utilisateur telles que l’impression, l’édition, la copie, etc. Cet article explique comment chiffrer ou déchiffrer un PDF en Java. De plus, vous apprendrez comment limiter les privilèges de l’utilisateur dans un document PDF.
- API Java pour chiffrer ou déchiffrer un PDF
- Crypter un fichier PDF à l’aide de Java
- Décrypter un fichier PDF en utilisant Java
- Modifier les autorisations de sécurité dans un PDF à l’aide de Java
API Java pour chiffrer ou déchiffrer un PDF - Téléchargement gratuit
Aspose.PDF for Java est une API de manipulation PDF riche en fonctionnalités qui vous permet de travailler avec le cryptage et le décryptage PDF de manière transparente. De plus, il vous permet de modifier par programme les privilèges de l’utilisateur dans les documents PDF. Vous pouvez télécharger l’API gratuitement ou l’installer à l’aide des configurations Maven suivantes.
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>20.9</version>
<classifier>jdk17</classifier>
</dependency>
Crypter un fichier PDF en Java
Le cryptage d’un document PDF nécessite que vous définissiez un mot de passe qui sera utilisé pour ouvrir et accéder au document. Parallèlement à cela, vous pouvez choisir l’un des algorithmes cryptographiques suivants à utiliser dans le cryptage.
- RC4 avec une clé de 40 bits
- RC4 avec une clé de 128 bits
- AES avec une clé de 128 bits
- AES avec une clé de 256 bits
Voici les étapes pour chiffrer un fichier PDF en Java.
- Chargez le document PDF à l’aide de la classe Document.
- Chiffrez le PDF à l’aide de la méthode Document.encrypt(“userpassword”, “ownerpassword”, 0, CryptoAlgorithm).
- Enregistrez le PDF crypté à l’aide de la méthode Document.save(string).
L’exemple de code suivant montre comment chiffrer un document PDF à l’aide de Java.
// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// document ouvert
Document document = new Document("input.pdf");
// chiffrer le PDF
document.encrypt("user", "owner", 0, CryptoAlgorithm.AESx256);
// enregistrer le PDF mis à jour
document.save("Encrypted_output.pdf");
La boîte de dialogue suivante apparaît lorsque vous ouvrez le PDF crypté.
Décrypter un fichier PDF en Java
Le décryptage d’un document PDF crypté nécessite le mot de passe de l’utilisateur ou du propriétaire. Voici les étapes pour décrypter un fichier PDF en Java.
- Chargez le PDF crypté à l’aide de la classe Document en spécifiant le mot de passe dans le constructeur.
- Appelez la méthode Document.decrypt() pour décrypter le PDF.
- Enregistrez le document PDF décrypté à l’aide de la méthode Document.save(string).
L’exemple de code suivant montre comment déchiffrer un PDF chiffré à l’aide de Java.
// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// document ouvert
Document document = new Document("input.pdf", "password");
// décrypter le PDF
document.decrypt();
// enregistrer le PDF mis à jour
document.save("output.pdf");
Modifier les autorisations de sécurité dans un PDF à l’aide de Java
Vous pouvez également limiter l’accès de l’utilisateur pour effectuer différentes opérations lors du cryptage des documents PDF. Voici les autorisations que vous pouvez définir.
- Imprimer le document – Permet l’impression du document.
- Modifier le contenu – Permet de modifier le contenu.
- Extraire le contenu – Permet de copier le contenu du document.
- Modifier les annotations de texte – Permet d’ajouter ou de mettre à jour des annotations de texte.
- Remplir le formulaire – Permet de remplir les champs du formulaire interactif.
- Extraire du contenu avec des handicaps - Permet d’extraire du texte et des graphiques (pour les utilisateurs handicapés).
- Assembler le document – Permet d’insérer, de faire pivoter ou de supprimer des pages et de créer des signets ou des vignettes.
- Qualité d’impression – Permet l’impression haute résolution de documents.
Voici les étapes pour définir ou modifier les autorisations dans un document PDF.
- Chargez le PDF à l’aide de la classe Document.
- Utilisez la classe DocumentPrivilege pour définir les autorisations.
- Chiffrez le PDF et enregistrez-le comme vous l’avez fait dans les exemples précédents.
L’exemple de code suivant montre comment modifier les autorisations dans un document PDF à l’aide de Java.
// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-pdf/Aspose.Pdf-for-Java
Document document = new Document("inputFile.pdf");
try /* JAVA: was using */
{
DocumentPrivilege documentPrivilege = DocumentPrivilege.getForbidAll();
documentPrivilege.setAllowScreenReaders(true);
documentPrivilege.setAllowPrint(true);
document.encrypt("user", "owner", documentPrivilege, CryptoAlgorithm.AESx128, false);
document.save("outputFile.pdf");
} finally {
if (document != null)
document.dispose();
}
Voici les autorisations dans le fichier PDF crypté.
Conclusion
Dans cet article, vous avez appris à chiffrer ou à déchiffrer des fichiers PDF en Java. De plus, vous avez vu comment modifier les privilèges de l’utilisateur dans un document PDF par programmation en Java. Vous pouvez explorer et en savoir plus sur l’API Java PDF à l’aide de documentation.