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.

cifrar o descifrar pdf 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 - 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.

Los siguientes son los pasos para cifrar un archivo PDF en Java.

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.

pdf encriptado

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.

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.

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.

Ver también