Descifrar y descifrar PDF en C#

El cifrado de PDF se utiliza para proteger el documento PDF del acceso no autorizado. Si un documento PDF está encriptado, debe descifrarlo para acceder a su contenido; de lo contrario, permanecerá ilegible. La mayoría de las veces, los documentos PDF están encriptados con una contraseña que se requiere para abrir el documento. Por otro lado, también puede limitar los permisos de acceso a varias operaciones como imprimir, editar, copiar, etc. La biblioteca de PDF de Aspose, Aspose.PDF for .NET, proporciona algunas formas sencillas de cifrar y descifrar Archivos PDF usando C# y VB.NET. En este artículo, le mostraré cómo realizar operaciones de cifrado y descifrado de PDF utilizando C#.

API de cifrado y descifrado de PDF de C#: instalación

Aspose.PDF for .NET está alojado en NuGet y se puede instalar fácilmente mediante NuGet Package Manager. Alternativamente, puede descargar la DLL de la API desde la sección Descargas.

Cifrar archivos PDF en C#

Para cifrar un archivo PDF, debe establecer una contraseña que se le solicitará para abrir y ver el documento. Además, debe especificar el algoritmo criptográfico deseado como método de cifrado. Aspose.PDF for .NET admite los siguientes métodos de 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.

Pasos para cifrar un archivo PDF

Los siguientes son los pasos simples para cifrar un documento PDF usando C#.

  • Cargue el documento PDF utilizando la clase Document.
  • Cifre el documento PDF con una contraseña y un algoritmo criptográfico utilizando el método Document.Encrypt.
  • Guarde el documento PDF encriptado usando el método Document.Save.

El siguiente ejemplo de código muestra cómo cifrar un documento PDF usando C#.

// Abrir documento
Document document = new Document("Encrypt.pdf");
// Cifrar PDF  
document.Encrypt("user_password", "owner_password", 0 /*permissions*/, CryptoAlgorithm.RC4x128);
// Guardar PDF actualizado
document.Save("Encrypted PDF.pdf");

Cuando abra este documento PDF encriptado en Adobe Reader, aparecerá el siguiente diálogo.

documento PDF encriptado

Descifrar un archivo PDF usando C#

Para descifrar un documento PDF, debe tener la contraseña de usuario o propietario del documento. Los siguientes son los pasos simples para descifrar un documento PDF:

  • Cargue el documento PDF utilizando la clase Document especificando la contraseña del usuario o del propietario.
  • Llame al método Document.Decrypt().
  • Guarde el documento PDF descifrado.

El siguiente ejemplo de código muestra cómo descifrar un documento PDF usando C#.

// Abra el documento especificando la contraseña de su usuario o propietario
Document document = new Document("Encrypted PDF.pdf", "user_password");
// Descifrar PDF  
document.Decrypt();
// Guardar PDF actualizado
document.Save("Decrypted PDF.pdf");

Cambiar los permisos de seguridad de un archivo PDF en C#

Puede mejorar la seguridad de un documento PDF limitando el permiso del usuario. En tal caso, puede especificar las operaciones que están permitidas para los usuarios. La siguiente es la lista de los permisos que puede configurar para permitir a un usuario.

  • Imprimir documento: permite imprimir el documento.
  • Modificar Contenido - Permite modificar el contenido del documento.
  • Extraer contenido: permite copiar el contenido del documento.
  • Modificar anotaciones de texto: permite agregar o modificar 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 imprimir documentos con alta resolución.

Pasos para cambiar los permisos de seguridad de un archivo PDF

Los siguientes son los pasos para cambiar los permisos de seguridad de un documento PDF.

  • Cargue el documento PDF.
  • Configure los permisos de seguridad mediante el método Document.Encrypt.
  • Guarde el documento PDF encriptado.

El siguiente ejemplo de código muestra cómo cambiar los permisos de un documento PDF usando C#.

// Abrir documento
Document document = new Document("Encrypt.pdf");
// Cifrar PDF con permiso de impresión
document.Encrypt("user_password", "owner_password", Permissions.PrintDocument | Permissions.PrintingQuality, CryptoAlgorithm.RC4x128);
// Guardar PDF actualizado
document.Save("Encrypted PDF.pdf");

Otra forma de configurar o modificar los privilegios de los documentos PDF es mediante la clase DocumentPrivilege. La clase DocumentPrivilege le permite definir los permisos o privilegios para los usuarios. El siguiente ejemplo de código muestra cómo configurar los permisos de seguridad de un documento PDF mediante la clase DocumentPrivilege en C#.

// Abrir documento
Document document = new Document("Encrypt.pdf");
// Aplicar restricciones en todos los privilegios
DocumentPrivilege privileges = DocumentPrivilege.ForbidAll;
// Permitir los privilegios deseados
privileges.AllowScreenReaders = true;
privileges.AllowPrint = true;
// Cifrar PDF
document.Encrypt("user_password", "owner_password", privileges, CryptoAlgorithm.RC4x128, false);
// Guardar PDF actualizado
document.Save("Encrypted PDF.pdf");

Los siguientes son los detalles de seguridad del documento PDF que hemos cifrado en esta sección.

permisos de seguridad modificados de PDF

Conclusión

En este artículo, ha seguido los pasos para cifrar y descifrar documentos PDF usando C#. Además, también ha aprendido a establecer o modificar los permisos de seguridad de un documento PDF en C#. Estas funciones de seguridad le permiten proteger los documentos PDF confidenciales utilizando la contraseña y los algoritmos criptográficos, así como limitar el acceso del usuario a las operaciones relacionadas con el documento. Puede consultar la documentación para obtener más información sobre nuestra biblioteca PDF de .NET.

Ver también