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?

Foi útil?

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:

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

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top