Existe alguma biblioteca de compactação e criptografia em C#?
-
09-06-2019 - |
Pergunta
Quero compactar alguns arquivos (no fecho eclair formato) e criptografá-los, se possível, usando C#.Existe alguma maneira de fazer isso?
A criptografia pode ser feita como parte da própria compactação?
Solução
Para compactação, observe o System.IO.Compression
namespace e para criptografia, veja System.Security.Cryptography
.
Outras dicas
Para compactação Zip, você viu http://www.icsharpcode.net/OpenSource/SharpZipLib/
Sei que a pergunta já é antiga, mas devo acrescentar meus dois centavos.
Primeiro, algumas definições:
- Fecho eclair:Formato de arquivo para reagrupar arquivos e pastas em um único arquivo e, opcionalmente, criptografar dados.
- Esvaziar:Um dos algoritmos de compactação usados em um arquivo Zip para compactar os dados.O mais popular.
- Gzip:Um único arquivo compactado com deflate, com um pequeno cabeçalho e rodapé.
Agora, System.IO.Compression faz não fazer arquivamento Zip.Isso acontece esvaziar e gzip compactação, portanto, compactará um único blob de dados em outro único blob de dados.
Portanto, se você está procurando um formato de arquivo que possa agrupar muitos arquivos e pastas, você precisa de bibliotecas Zip como:
- Xceed Zip (suporta criptografia forte)
- SharpZipLib
Se você precisar compactar e criptografar apenas um único blob de dados, consulte Sistema.IO.Compressão e Sistema.Segurança.Criptografia.
O GZipStream class é uma maneira nativa de lidar com a compactação.
Quanto à criptografia, existem muitos caminhos para fazer isso, a maioria deles no namespace System.Security.Eles podem ser encadeados (criptografar um fluxo compactado ou compactar um fluxo criptografado).
Chilkat fornece bibliotecas .NET para compactação e criptografia.
Não tenho certeza se as etapas podem ser combinadas, mas o .NET tem um bom suporte para criptografia básica.Aqui está um artigo sobre isso.
Se eles não puderem ser combinados, faça primeiro a compactação e depois a criptografia.A compactação de um arquivo já criptografado resultará em taxas de compactação ruins, porque muita redundância será removida.
Aqui está um tópico útil:
Ajuda na criação de arquivos Zip em .Net e na leitura deles em Java
O namespace System.IO.Packaging fornece classes úteis para compactar dados em formato zip e apoiar gestão de direitos.
Não há nada que você possa usar diretamente em C#, mas você pode usar algumas bibliotecas de J# para fazer isso por você:
http://msdn.microsoft.com/en-us/magazine/cc164129.aspx
Deve fazer exatamente o que você quer?
Com relação à criptografia, dê uma olhada nestes links:
http://www.codeproject.com/KB/security/fileencryptdecrypt.aspx