2008-12-04 9 views

Respuesta

10

¿Cuánto estaría dispuesto a pagar por AES en DotNetZip? ;)

DotNetZip es compatible con el cifrado AES, con claves de 128 o 256 bits.

http://www.codeplex.com/DotNetZip

código Ejemplo:

using (ZipFile zip = new ZipFile()) 
    { 
    zip.AddFile("ReadMe.txt"); // no password for this entry 

    // use a password for subsequent entries 
    zip.Password= "This.Encryption.is.FIPS.197.Compliant!"; 
    zip.Encryption= EncryptionAlgorithm.WinZipAes256; 
    zip.AddFile("Rawdata-2008-12-18.csv"); 
    zip.Save("Backup-AES-Encrypted.zip"); 
    } 

Los archivos zip cifrados-AES producidos por DotNetZip puede ser leído y se extrajo por WinZip, y vice-versa.

También puede simplemente crear archivos zip regulares sin cifrado.

oh, y es gratis.

+0

¿Alguno de ustedes tiene una forma de ver qué método se utilizó para encriptar un ¿archivo? Si abro un archivo generado con WinZip veo que sí está encriptado, pero no tengo forma de decir con qué algoritmo (Zip2.0, AES128, AES256, etc.). – WowtaH

+0

DotNetZip le dirá con la propiedad ZipFile.Encryption en un archivo comprimido que haya leído. No sé cómo hacerlo con WinZip. – Cheeso

+1

Estaba realmente entusiasmado con esta biblioteca, sin embargo, necesitamos utilizar los proveedores de cifrado certificados como 'AesCryptoServiceProvider' frente a la contraparte administrada' AesManaged'. Creo que DotNetZip está usando 'RijndaelManaged' para compatibilidad con versiones anteriores de .NET 2 :( –

6

Si el dinero es un gran problema, usted podría tomar una biblioteca de código abierto como este http://www.codeplex.com/DotNetZip, que ahora cuenta con el apoyo de AES

+0

Actualización: AES ahora es compatible con DotNetZip. http://DotNetZip.codeplex.com/ – Cheeso

+0

editado para llevar la actualización a la cuenta –

6

¿Qué hay de 7-Zip? Es de código abierto bajo LGPL (por lo que debe ser utilizable en su proyecto) y de acuerdo con la especificación es compatible con ZIP con encriptación AES.

+0

Me gusta 7-zip, pero requiere ya sea iniciar un proceso (para ejecutarlo desde la línea de comandos) o COM/interoperabilidad de código no administrado. – MatthewMartin

+1

En realidad, tienen el SDK LZMA que ahora tiene código C# para usarlo también: http://www.7-zip.org/sdk.html –

1

Echa un vistazo a este artículo impresionante en el Stream Pipeline. No solo define una forma genial de vincular flujos entre sí de forma multiproceso, el ejemplo utilizado es la compresión seguida de encriptación.

+0

El enlace está roto ahora, el artículo parece estar en el febrero de 2008 Problema de MSDN, Columna ".NET Matters: Stream Pipeline". http://download.microsoft.com/download/3/A/7/3A7FA450-1F33-41F7-9E6D-3AA95B5A6AEA/MSDNMagazineFebruary2008en-us.chm –

1

Puede usar #ZipLib (https://icsharpcode.github.io/SharpZipLib/), que es una alternativa ligera a DotNetZipLib.

Ofrece la clase FastZip, que reduce la compresión de una carpeta en el HDD con encriptación AES a 2-3 líneas de código.

Véase el wiki de referencia: https://github.com/icsharpcode/SharpZipLib/wiki/FastZip

Si necesita más funciones, #ZipLib se hace un poco más complicado que DotNetZipLib, pero este último creado archivos ZIP dañados en mi caso, así que uso SharpZipLib de todos modos.

Cuestiones relacionadas