Este artículo le proporciona una guía paso a paso y ejemplos de código para cifrar y descifrar archivos PDF mediante programación en Java.
En varios casos, los documentos PDF se cifran antes de compartirlos entre las partes interesadas. El cifrado protege el documento contra el acceso no autorizado y la manipulación del contenido. Hay un par de formas populares de proteger documentos PDF: cifrar PDF con una contraseña o limitar los permisos de acceso del usuario, como imprimir, editar, copiar, etc. Este artículo demuestra cómo cifrar o descifrar un PDF en Java. Además, aprenderá cómo limitar los privilegios del usuario en un documento PDF.
- API de Java para cifrar o descifrar PDF
- Cifrar un archivo PDF usando Java
- Descifrar un archivo PDF usando Java
- Cambiar los permisos de seguridad en un PDF usando Java
API de Java para cifrar o descifrar PDF - Descarga gratuita
Aspose.PDF for Java es una API de manipulación de PDF rica en funciones que le permite trabajar con el cifrado y descifrado de PDF sin problemas. Además, permite modificar los privilegios de usuario en los documentos PDF mediante programación. Puede descargar la API de forma gratuita o instalarla utilizando las siguientes configuraciones de Maven.
<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>
Cifrar un archivo PDF en Java
El cifrado de un documento PDF requiere que establezca una contraseña que se utilizará para abrir y acceder al documento. Junto con esto, puede elegir uno de los siguientes algoritmos criptográficos para usar en el cifrado.
- RC4 con una clave de 40 bits
- RC4 con una clave de 128 bits
- AES con una clave de 128 bits
- AES con una clave de 256 bits
Los siguientes son los pasos para cifrar un archivo PDF en Java.
- Cargue el documento PDF utilizando la clase Document.
- Cifre PDF usando el método Document.encrypt(“usuario\contraseña”, “propietario\contraseña”, 0, CryptoAlgorithm).
- Guarde el PDF cifrado con el método Document.save(string).
El siguiente ejemplo de código muestra cómo cifrar un documento PDF usando Java.
// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// documento abierto
Document document = new Document("input.pdf");
// cifrar PDF
document.encrypt("user", "owner", 0, CryptoAlgorithm.AESx256);
// guardar PDF actualizado
document.save("Encrypted_output.pdf");
El siguiente cuadro de diálogo aparece cuando abre el PDF cifrado.
Descifrar un archivo PDF en Java
El descifrado de un documento PDF cifrado requiere la contraseña del usuario o propietario. Los siguientes son los pasos para descifrar un archivo PDF en Java.
- Cargue el PDF encriptado usando la clase Document especificando la contraseña en el constructor.
- Llame al método Document.decrypt() para descifrar el PDF.
- Guarde el documento PDF descifrado usando el método Document.save(string).
El siguiente ejemplo de código muestra cómo descifrar un PDF encriptado usando Java.
// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-pdf/Aspose.Pdf-for-Java
// documento abierto
Document document = new Document("input.pdf", "password");
// descifrar PDF
document.decrypt();
// guardar PDF actualizado
document.save("output.pdf");
Cambiar los permisos de seguridad en un PDF usando Java
También puede limitar el acceso del usuario para realizar diferentes operaciones mientras cifra los documentos PDF. Los siguientes son los permisos que puede establecer.
- Imprimir documento: permite la impresión de documentos.
- Modificar contenido: permite modificar el contenido.
- Extraer contenido: permite copiar el contenido del documento.
- Modificar anotaciones de texto: permite agregar o actualizar anotaciones de texto.
- Rellenar formulario: permite rellenar los campos del formulario interactivo.
- Extraer contenido con discapacidades: permite extraer texto y gráficos (para usuarios con discapacidades).
- Ensamblar documento: permite insertar, rotar o eliminar páginas y crear marcadores o imágenes en miniatura.
- Calidad de impresión: permite la impresión de documentos en alta resolución.
Los siguientes son los pasos para establecer o modificar permisos en un documento PDF.
- Cargue el PDF usando la clase Document.
- Utilice la clase DocumentPrivilege para establecer los permisos.
- Cifre el PDF y guárdelo como lo ha hecho en los ejemplos anteriores.
El siguiente ejemplo de código muestra cómo modificar los permisos en un documento PDF usando Java.
// Para obtener ejemplos completos y archivos de datos, vaya a 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();
}
Los siguientes son los permisos en el archivo PDF encriptado.
Conclusión
En este artículo, ha aprendido a cifrar o descifrar archivos PDF en Java. Además, has visto cómo modificar los privilegios de usuario en un documento PDF mediante programación en Java. Puede explorar y obtener más información sobre la API PDF de Java utilizando documentación.