Pregunta

Quiero comprimir algunos archivos (en el CREMALLERA formato) y cifrarlos si es posible usando C#.Hay alguna manera de hacer esto?

¿Se puede realizar el cifrado como parte de la compresión misma?

¿Fue útil?

Solución

Para la compresión, mire el System.IO.Compression espacio de nombres y para el cifrado mira System.Security.Cryptography.

Otros consejos

Para la compresión Zip, ¿has visto? http://www.icsharpcode.net/OpenSource/SharpZipLib/

Sé que la pregunta ya es antigua, pero debo aportar mi granito de arena.

Primero, algunas definiciones:

  • Cremallera:Formato de archivo para reagrupar archivos y carpetas en un solo archivo y, opcionalmente, cifrar datos.
  • Desinflar:Uno de los algoritmos de compresión utilizados dentro de un archivo Zip para comprimir los datos.El más popular.
  • GZip:Un único archivo comprimido con deflate, con un encabezado y pie de página pequeños.

Ahora, System.IO.Compression hace no hacer el archivo Zip.Lo hace desinflar y zip compresión, por lo tanto comprimirá un único blob de datos en otro único blob de datos.

Entonces, si buscas un formato de archivo que pueda agrupar muchos archivos y carpetas, necesitas bibliotecas Zip como:

Si solo necesita comprimir y cifrar un único blob de datos, consulte en Compresión.IO.del.sistema y Sistema.Seguridad.Criptografía.

El GZipStream La clase es una forma nativa de manejar la compresión.

En cuanto al cifrado, existen muchos maneras para hacerlo, la mayoría de ellos en el espacio de nombres System.Security.Se pueden hacer encadenados (cifrar un flujo comprimido o comprimir un flujo cifrado).

chilkat proporciona bibliotecas .NET para compresión y cifrado.

No estoy seguro de si los pasos se pueden combinar, pero .NET tiene un buen soporte para criptografía básica.Aquí hay un artículo al respecto.

Si no se pueden combinar, primero comprima y luego encripte.Comprimir un archivo ya cifrado dará como resultado índices de compresión bajos, porque se elimina gran parte de la redundancia.

Aquí hay un tema útil:

Ayuda para crear archivos Zip desde .Net y leerlos desde Java

El espacio de nombres System.IO.Packaging le brinda clases útiles para comprimir datos en formato zip y apoyo Gestión de Derechos.

No hay nada que puedas usar directamente en C#, sin embargo, puedes usar algunas bibliotecas de J# para hacerlo por ti:

http://msdn.microsoft.com/en-us/magazine/cc164129.aspx

¿Deberías hacer justo lo que quieres?

En cuanto al cifrado, echa un vistazo a estos enlaces:

http://www.codeproject.com/KB/security/fileencryptdecrypt.aspx

http://www.obviex.com/samples/EncryptionWithSalt.aspx

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top