agregar-archivos-o-carpetas-a-archivos-zip-usando-csharp

Los archivos ZIP son los tipos más comunes de archivos de almacenamiento que se utilizan para mantener archivos y carpetas comprimidos en un solo contenedor. Como desarrollador de C#, puede crear fácilmente archivos ZIP encriptados o protegidos con contraseña mediante programación usando C# en sus aplicaciones .NET. En este artículo, aprenderá a crear archivos ZIP cifrados con C#.

Los siguientes temas se discuten/tratan en este artículo:

API de C# para crear archivos ZIP cifrados

Para crear archivos cifrados ZIP, usaré Aspose.ZIP para .NET API. Le permite comprimir archivos y carpetas y agregarlos a archivos ZIP. También le permite descomprimir archivos de tipos admitidos, como ZIP, TAR, GZIP, BZ2, 7Zip, RAR, etc. La API brinda protección a través de contraseñas definidas por el usuario y técnicas de cifrado tradicionales que utilizan cifrado AES, como AES128, AES192 y AES256. .

Puede descargar la DLL de la API o instalarla mediante NuGet.

Install-Package Aspose.ZIP

Crear archivos ZIP protegidos con contraseña

Puede crear fácilmente archivos ZIP protegidos con contraseña mediante programación siguiendo los pasos que se detallan a continuación:

  1. Cree una instancia de la clase Archivo con el objeto ArchiveEntrySettings.
  2. Establezca la contraseña usando el objeto TraditionalEncryptionSettings.
  3. Llame al método CreatEntry() con la ruta del archivo de entrada para agregar al archivo.
  4. Repita el paso anterior para agregar varios archivos.
  5. Llame al método Save() con la ruta del archivo de salida para guardar el archivo de salida.

El siguiente ejemplo de código muestra cómo crear un archivo ZIP protegido con contraseña mediante C#.

// crear un archivo
Archive archive = new Archive(new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("12345")));

// Agregar archivos al archivo
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt");
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt");

// guardar el archivo
archive.Save("C:\\Files\\password_protcted.zip");
Crear archivos ZIP protegidos con contraseña

Crear archivos ZIP protegidos con contraseña

La clase Archive representa un archivo ZIP. Proporciona varios métodos para crear, componer, extraer o actualizar archivos ZIP. El método CreateEntry() de esta clase crea una sola entrada de un archivo dentro del archivo. Toma el nombre del archivo y la ruta completa del archivo como parámetros de entrada. Esta clase también proporciona métodos CreatEntry() sobrecargados para agregar archivos desde flujo o FileInfo. El método Save() de esta clase guarda el archivo ZIP en la ruta de archivo especificada.

La clase ArchiveEntrySettings proporciona configuraciones para comprimir o descomprimir las entradas. La clase TraditionalEncryptionSetings proporciona configuraciones para el algoritmo ZipCrypto tradicional. Es un algoritmo de protección de contraseña ZIP. La propiedad Contraseña de esta clase permite obtener o establecer una contraseña para cifrar o descifrar archivos y carpetas en un archivo ZIP.

Cree archivos ZIP cifrados con cifrado AES

Puede cifrar sus archivos ZIP con cifrado AES mediante programación siguiendo los pasos que se indican a continuación:

  1. Cree una instancia de la clase Archivo con el objeto ArchiveEntrySettings.
  2. Establezca la contraseña usando la clase AesEcryptionSettings. Pase la cadena de contraseña y EncryptionMethod como argumentos al constructor.
  3. Llame al método CreatEntry() con la ruta del archivo de entrada para agregar al archivo.
  4. Repita el paso anterior para agregar varios archivos.
  5. Llame al método Save() con la ruta del archivo de salida para guardar el archivo de salida.

El siguiente ejemplo de código muestra cómo crear un archivo ZIP cifrado con cifrado AES mediante C#.

// crear un archivo
Archive archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128)));

// Agregar archivos al archivo
archive.CreateEntry("abc.txt", "C:\\Files\\sample1.txt");

// guardar el archivo
archive.Save("C:\\Files\\aes.zip");

La clase AesEncryptionSettings proporciona configuraciones para el algoritmo de cifrado o descifrado AES. El estándar de cifrado avanzado (AES) es un algoritmo de cifrado de bloque de cifrado o descifrado simétrico.

Puede utilizar los siguientes tipos de métodos de cifrado:

  • Tradicional — Cifrado PKWARE tradicional
  • AES128: estándar de cifrado avanzado con una longitud de clave de 128 bits
  • AES192: estándar de cifrado avanzado con una longitud de clave de 192 bits
  • AES256: estándar de cifrado avanzado con una longitud de clave de 256 bits

Cifrar carpetas en archivos ZIP

Puede agregar carpetas protegidas con contraseña a archivos ZIP mediante programación siguiendo los pasos que se detallan a continuación:

  1. Cree una instancia de la clase Archivo con el objeto ArchiveEntrySettings.
  2. Establezca la contraseña usando el objeto TraditionalEncryptionSettings.
  3. Llame al método CreatEntries() con la ruta de la carpeta para agregar al archivo.
  4. Repita el paso anterior para agregar varias carpetas.
  5. Llame al método Save() con la ruta del archivo de salida para guardar el archivo de salida.

El siguiente ejemplo de código muestra cómo agregar una carpeta cifrada al archivo ZIP usando C#.

// crear un archivo
Archive archive = new Archive(new ArchiveEntrySettings(null, new TraditionalEncryptionSettings("123@45")));

// Agregar carpeta al archivo
archive.CreateEntries("C:\\Files\\MyFolder");

// guardar el archivo
archive.Save("C:\\Files\\password_protcted_folder.zip");

Cifrar archivos específicos en archivos ZIP

Puede cifrar archivos específicos en los archivos ZIP mediante programación siguiendo los pasos que se indican a continuación:

  1. Cree una instancia de la clase Archivo.
  2. Llame al método CreatEntry() con la ruta del archivo de entrada para agregar al archivo.
  3. Establezca la contraseña para el archivo mediante ArchiveEntrySettings con TraditionalEncryptionSettings.
  4. Llame al método CreatEntry() con la ruta del archivo de entrada para agregar otro archivo al archivo.
  5. Repita los pasos anteriores para agregar más archivos.
  6. Llame al método Save() con la ruta del archivo de salida para guardar el archivo de salida.

El siguiente ejemplo de código muestra cómo cifrar archivos específicos en el archivo ZIP usando C#.

// crear un archivo
Archive archive = new Archive();

// Agregar archivos al archivo
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt");
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt", false, new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("123@abc")));

// guardar el archivo
archive.Save("C:\\Files\\password_protcted.zip");
Cifrar archivos específicos en archivos ZIP

Cifrar archivos específicos en archivos ZIP

Cree archivos ZIP cifrados con cifrado mixto

Puede crear archivos ZIP que contengan archivos y carpetas protegidos con técnicas de cifrado mixtas que varían para cada archivo y carpeta mediante programación siguiendo los pasos que se indican a continuación:

  1. Cree una instancia de la clase Archivo.
  2. Llame al método CreatEntry() con la ruta del archivo de entrada para agregar al archivo.
  3. Establezca la contraseña para el archivo utilizando ArchiveEntrySettings con AesEcryptionSettings.
  4. Llame al método CreatEntry() con la ruta del archivo de entrada para agregar otro archivo al archivo.
  5. Establezca la contraseña para el archivo mediante ArchiveEntrySettings con TraditionalEncryptionSettings.
  6. Llame al método CreatEntry() con la ruta del archivo de entrada para agregar otro archivo al archivo.
  7. Llame al método CreateEntries() con la ruta de la carpeta para agregar al archivo.
  8. Guarde el archivo de salida usando el método Save() con la ruta del archivo de salida.

El siguiente ejemplo de código muestra cómo crear un archivo ZIP con técnicas de cifrado combinadas mediante C#.

// crear un archivo
Archive archive = new Archive();

// Agregar archivo con cifrado AES al archivo
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt", false, new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128)));

// Agregar archivo con cifrado tradicional al archivo
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt", false, new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("321")));

// Agregar archivo sin encriptación al archivo
archive.CreateEntry("sample3.txt", "C:\\Files\\sample2.txt");

// Agregar carpeta sin encriptar al archivo
archive.CreateEntries("C:\\Files\\MyFolder");

// guardar el archivo
archive.Save("C:\\Files\\Mixed.zip");
Cree archivos ZIP cifrados con cifrado mixto

Crear archivo ZIP cifrado con cifrado mixto

Obtenga una licencia gratis

Puede probar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido a crear archivos ZIP cifrados con C#. También aprendió cómo crear un archivo ZIP protegido por contraseña mediante programación. Además, ha aprendido a cifrar archivos específicos en los archivos ZIP. Además, ha aprendido a agregar carpetas protegidas con contraseña a archivos ZIP. Este artículo también explicó cómo crear un archivo ZIP encriptado con técnicas de encriptación mixta usando C#. Puede obtener más información sobre Aspose.ZIP para la API de .NET utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también