Cifrar archivos PDF

El cifrado es un método conocido y fiable para proteger el contenido de los documentos PDF. Cuando se cifra un documento, su contenido se vuelve ilegible y solo los usuarios autorizados pueden descifrarlo para obtener acceso a su contenido. Cuando se protegen los documentos con una contraseña, las personas que introduzcan la contraseña correcta podrán acceder al archivo o la carpeta. Un método de seguridad más sólido es el cifrado, cuyos tipos más comunes son la clave de 128 bits o el cifrado AES de 256 bits. Tenga en cuenta que el cifrado convierte el contenido del documento en texto cifrado ilegible. Para descifrar el documento, los usuarios autorizados necesitan una clave, que suele ser una contraseña o un certificado digital. En este artículo, analizaremos en detalle cómo cifrar y descifrar archivos PDF con el SDK de Java Cloud.

En este blog, analizaremos los pasos y detalles pertinentes al cifrado y descifrado de documentos PDF mediante la API REST de Java.

API REST de Java

Aspose.PDF Cloud SDK for Java es un contenedor de Aspose.PDF Cloud que permite a los programadores Java aprovechar al máximo las funciones que se ofrecen actualmente en nuestra API de la nube. De esta forma, directamente en su código Java, obtiene las capacidades para crear, editar y transformar archivos PDF a varios formatos de documentos admitidos.

Instalación

Para utilizar el SDK, el primer paso es instalarlo en su sistema. El SDK de Cloud está disponible para descargar en Maven y GitHub. Ahora agregue los siguientes detalles en su archivo pom.xml para descargar y utilizar Aspose.Pdf.jar en el proyecto de compilación de Maven.

<repositories>
 <repository>
        <id>aspose-cloud</id>
        <name>artifact.aspose-cloud-releases</name>
        <url>http://artifact.aspose.cloud/repo</url>
    </repository>   
</repositories>
<dependencies>
 <dependency>
        <groupId>com.aspose</groupId>
        <artifactId>aspose-pdf-cloud</artifactId>
        <version>21.1.0</version>
        <scope>compile</scope>
    </dependency>
 </dependencies>

También le recomendamos visitar el siguiente enlace para obtener información detallada sobre Cómo instalar los SDK de Aspose.Cloud.

Suscripción gratuita a Cloud Dashboard

Aspose.PDF Cloud SDK For Java es un SDK de nube gratuito y de código abierto para el procesamiento de archivos PDF. Cuando decimos gratuito, significa que el código fuente completo del SDK está disponible para descargar en el repositorio GitHub. Por lo tanto, puede modificar su código según sus requisitos. Sin embargo, para garantizar la confidencialidad e integridad de los datos, las API de la nube solo son accesibles para personas autorizadas y solo acceden a su almacenamiento en la nube particular.

Por lo tanto, primero debe visitar el panel de control de Aspose.Cloud y, si tiene una cuenta de GitHub o Google, simplemente regístrese. De lo contrario, haga clic en el botón Crear una nueva cuenta y proporcione la información solicitada.

Cifrar archivo PDF con el comando cURL

Los comandos cURL son una de las formas más sencillas y atractivas de acceder a las API REST. Hablemos ahora de cómo agregar las diferentes anotaciones mediante los comandos cURL. Para poder usar los comandos cURL, primero debemos generar un token de autorización de acceso JWT. El token web JSON (JWT) se basa en los detalles de ID de cliente y Secreto de cliente, que son claves únicas generadas para cada cliente. Por lo tanto, inicie sesión en el panel de control de Aspose.Cloud con sus credenciales y expanda la sección Aplicaciones desde el panel de control y desplácese hacia abajo hasta la sección Credenciales de cliente para ver los detalles de ID de cliente y Secreto de cliente.

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4&client_secret=d87269aade6a46cdc295b711e26809af" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

Antes de continuar, tenga en cuenta que cuando ciframos los archivos PDF, establecemos contraseñas de usuario y de propietario.

Contraseña para abrir documentos

Una contraseña de apertura de documento (también conocida como contraseña de usuario) requiere que el usuario escriba una contraseña para abrir el PDF.

Contraseña de permisos

Se requiere una contraseña de permiso (también conocida como contraseña maestra o de propietario) para cambiar la configuración de permisos. Al usar la contraseña de permiso, puede restringir la impresión, edición y copia de contenido en el PDF. Esta contraseña es necesaria para cambiar las restricciones que ya haya aplicado.

Si el PDF está protegido con ambos tipos de contraseñas, se puede abrir con cualquiera de las dos.

Tenga en cuenta que la API acepta las contraseñas de propietario y usuario en formato codificado en Base64. En el siguiente comando cURL, se especifican la contraseña de propietario (b3duZXJcLy8/ICQxMl5QYXNzd29yZCEm) y la contraseña de usuario (dXNlciAkXlBhc3N3b3JkISY=).

curl -v "https://api.aspose.cloud/v3.0/pdf/PdfWithTable.pdf/encrypt?userPassword=dXNlciAkXlBhc3N3b3JkISY%3D&ownerPassword=b3duZXJcLy8%2FICQxMl5QYXNzd29yZCEm&cryptoAlgorithm=AESx128&permissionsFlags=AssembleDocument&usePdf20=false" \
-X POST \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

Cifrar archivos PDF con Java

No solo añadimos protección con contraseña a los archivos PDF, sino que también utilizamos un método de seguridad más seguro: el cifrado. La API REST de Java le permite seleccionar uno de los siguientes métodos de cifrado, que convierten el contenido del documento en texto cifrado ilegible.

| Nombre | Descripción |

| ———— | ———————– |

| RC4x40 | RC4 con longitud de llave 40. |

| RC4x128 | RC4 con longitud de llave 128. |

| AESx128 | AES con longitud de clave 128. |

| AESx256 | AES con longitud de clave 256. |

Utilice el siguiente fragmento de código para agregar userPassword y ownerPassword a los archivos PDF ya disponibles en el almacenamiento en la nube.

  • El primer paso es crear una instancia de PdfApi mientras se pasan los detalles de clientID y clientSecret como argumentos.
  • Sube el archivo PDF al almacenamiento en la nube usando el método uploadFile(…) de PdfApi.
  • Finalmente, llame al método postEncryptDocumentInStorage(…) de PdfApi que toma el nombre del archivo PDF de entrada, las contraseñas de usuario y propietario y un valor de la enumeración CryptoAlgorithm como argumentos.
// Obtenga ClientID y ClientSecret desde https://dashboard.aspose.cloud/
String clientId = "a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4";
String clientSecret = "d87269aade6a46cdc295b711e26809af";
				
// instancia createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// documento PDF de entrada
String name = "PdfWithTable.pdf";	        
			   
// Cargar el archivo desde el sistema local
File file = new File("/Users/nayyershahbaz/Downloads/" + name);
// Sube el archivo al almacenamiento en la nube
FilesUploadResult uploadResponse = pdfApi.uploadFile(name, file, null);
				
// Contraseñas de usuario y propietario codificadas en base64
String userPasswordBase64encoded = "dXNlciAkXlBhc3N3b3JkISY="; //user $^Password!&
String ownerPasswordBase64encoded = "b3duZXJcLy8/ICQxMl5QYXNzd29yZCEm"; //owner\//? $12^Password!&

// Llamar a la API para cifrar PDF
AsposeResponse response  = pdfApi.postEncryptDocumentInStorage(name, userPasswordBase64encoded, ownerPasswordBase64encoded,
			                CryptoAlgorithm.AESX128.getValue(), null, null, null, null);
// Respuesta de la API de impresión en la consola
System.out.println(response);

Cuando intente abrir el archivo resultante, aparecerá un mensaje que le solicitará que proporcione los detalles de la contraseña.

Descifrar un archivo PDF con el comando cURL

El comando cURL también se puede utilizar para descifrar un documento PDF codificado existente. En el ejemplo que se muestra a continuación, se accede a la API PostDecryptDocumentInStorage, que toma los detalles de la contraseña como argumento.

curl -X POST "https://api.aspose.cloud/v3.0/pdf/PdfWithTable.pdf/decrypt?password=dXNlciAkXlBhc3N3b3JkISY%3D" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>"

Descifrar un archivo PDF con Java

Para descifrar los archivos PDF mediante Java, siga los pasos que se explican a continuación

  • Cree una instancia de PdfApi mientras pasa clientSecret y clientID como argumentos.
  • Crea un objeto de cadena que define el archivo PDF de entrada.
  • Sube el archivo al almacenamiento en la nube usando el método uploadFile(….) de la clase PdfApi.
  • Por último, llame al método postDecryptDocumentInStorage(…) mientras proporciona el nombre del archivo PDF de entrada y la contraseña de descifrado como argumentos.
// Obtenga ClientID y ClientSecret desde https://dashboard.aspose.cloud/
String clientId = "a41d01ef-dfd5-4e02-ad29-bd85fe41e3e4";
String clientSecret = "d87269aade6a46cdc295b711e26809af";
				
// instancia createPdfApi
PdfApi pdfApi = new PdfApi(clientSecret,clientId);
				
// documento PDF de entrada
String name = "PdfWithTable.pdf";	        
			   
// Cargar el archivo desde el sistema local
File file = new File("/Users/nayyershahbaz/Downloads/" + name);
// Sube el archivo al almacenamiento en la nube
FilesUploadResult uploadResponse = pdfApi.uploadFile(name, file, null);
				
// Contraseñas de usuario y propietario codificadas en base64
String userPasswordBase64encoded = "dXNlciAkXlBhc3N3b3JkISY="; //user $^Password!&

// Llamar a la API para descifrar PDF
AsposeResponse response  = pdfApi.postDecryptDocumentInStorage(name, userPasswordBase64encoded, null,null);
// Respuesta de la API de impresión en la consola
System.out.println(response);

El archivo descifrado utilizado en el ejemplo anterior se puede descargar desde PdfWithTable-Encrypted.pdf.

Conclusión

En este blog, hemos analizado los pasos para cifrar y descifrar archivos PDF mediante la API REST de Java. Puede cifrar fácilmente sus archivos de origen y compartirlos a través de Internet sin temor a que se roben datos o se haga un uso indebido de los documentos. Además de las funciones de cifrado, el Aspose.PDF Cloud SDK para Java ofrece una gran cantidad de funciones relacionadas con el formato PDF. Puede visitar el siguiente enlace para obtener más detalles sobre las funciones de Aspose.PDF Cloud.

Artículos relacionados

También te recomendamos leer el siguiente blog para obtener información sobre