add-files-or-folders-to-zip-archives-using-csharp

Os arquivos ZIP são os tipos mais comuns de arquivos compactados usados para manter arquivos e pastas compactados em um único contêiner. Como desenvolvedor C#, você pode criar facilmente arquivos ZIP criptografados ou protegidos por senha de forma programática usando C# em seus aplicativos .NET. Neste artigo, você aprenderá como criar arquivos ZIP criptografados usando C#.

Os seguintes tópicos são discutidos/abordados neste artigo:

API C# para criar arquivos ZIP criptografados

Para criar arquivos criptografados ZIP, estarei usando Aspose.ZIP for .NET API. Ele permite compactar arquivos e pastas e adicioná-los a arquivos ZIP. Também permite descompactar arquivos de tipos suportados, como ZIP, TAR, GZIP, BZ2, 7Zip, RAR, etc. A API fornece proteção por meio de senhas definidas pelo usuário e técnicas de criptografia tradicionais usando criptografia AES, como AES128, AES192 e AES256 .

Você pode baixar a DLL da API ou instalá-la usando NuGet.

Install-Package Aspose.ZIP

Criar arquivos ZIP protegidos por senha

Você pode criar facilmente arquivos ZIP protegidos por senha de forma programática seguindo as etapas abaixo:

  1. Crie uma instância da classe Archive com o objeto ArchiveEntrySettings.
  2. Defina a senha usando o objeto TraditionalEncryptionSettings.
  3. Chame o método CreatEntry() com o caminho do arquivo de entrada para adicionar ao arquivo.
  4. Repita a etapa acima para adicionar vários arquivos.
  5. Chame o método Save() com o caminho do arquivo de saída para salvar o arquivo de saída.

O exemplo de código a seguir mostra como criar um arquivo ZIP protegido por senha usando C#.

// criar um arquivo
Archive archive = new Archive(new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("12345")));

// Adicionar arquivos ao arquivo
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt");
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt");

// salve o arquivo
archive.Save("C:\\Files\\password_protcted.zip");
Criar arquivos ZIP protegidos por senha

Criar arquivos ZIP protegidos por senha

A classe Archive representa um arquivo ZIP. Ele fornece vários métodos para criar, compor, extrair ou atualizar arquivos ZIP. O método CreatEntry() desta classe cria uma única entrada de um arquivo dentro do arquivo. Ele usa o nome do arquivo e o caminho completo do arquivo como parâmetros de entrada. Essa classe também fornece métodos CreatEntry() sobrecarregados para adicionar arquivos de stream ou FileInfo. O método Save() desta classe salva o arquivo ZIP no caminho de arquivo especificado.

A classe ArchiveEntrySettings fornece configurações para compactar ou descompactar as entradas. A classe TraditionalEncryptionSetings fornece configurações para o algoritmo ZipCrypto tradicional. É um algoritmo de proteção por senha ZIP. A propriedade Password desta classe permite obter ou definir uma senha para criptografia ou descriptografia de arquivos e pastas em um arquivo ZIP.

Crie arquivos ZIP criptografados com criptografia AES

Você pode criptografar seus arquivos ZIP com criptografia AES programaticamente seguindo as etapas abaixo:

  1. Crie uma instância da classe Archive com o objeto ArchiveEntrySettings.
  2. Defina a senha usando a classe AesEcryptionSettings. Passe a string de senha e o EncryptionMethod como argumentos para o construtor.
  3. Chame o método CreatEntry() com o caminho do arquivo de entrada para adicionar ao arquivo.
  4. Repita a etapa acima para adicionar vários arquivos.
  5. Chame o método Save() com o caminho do arquivo de saída para salvar o arquivo de saída.

O exemplo de código a seguir mostra como criar um arquivo ZIP criptografado com criptografia AES usando C#.

// criar um arquivo
Archive archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128)));

// Adicionar arquivos ao arquivo
archive.CreateEntry("abc.txt", "C:\\Files\\sample1.txt");

// salve o arquivo
archive.Save("C:\\Files\\aes.zip");

A classe AesEncryptionSettings fornece configurações para criptografia AES ou algoritmo de descriptografia. O Advanced Encryption Standard (AES) é um algoritmo de criptografia de bloco de criptografia ou descriptografia simétrica.

Você pode usar os seguintes tipos de métodos de criptografia:

  • Tradicional — Criptografia PKWARE tradicional
  • AES128 — Padrão de criptografia avançada com comprimento de chave de 128 bits
  • AES192 — Padrão de criptografia avançada com comprimento de chave de 192 bits
  • AES256 — Padrão de criptografia avançada com comprimento de chave de 256 bits

Criptografar pastas em arquivos ZIP

Você pode adicionar pastas protegidas por senha a arquivos ZIP programaticamente seguindo as etapas abaixo:

  1. Crie uma instância da classe Archive com o objeto ArchiveEntrySettings.
  2. Defina a senha usando o objeto TraditionalEncryptionSettings.
  3. Chame o método CreatEntries() com o caminho da pasta para adicionar ao arquivo.
  4. Repita a etapa acima para adicionar várias pastas.
  5. Chame o método Save() com o caminho do arquivo de saída para salvar o arquivo de saída.

O exemplo de código a seguir mostra como adicionar uma pasta criptografada ao arquivo ZIP usando C#.

// criar um arquivo
Archive archive = new Archive(new ArchiveEntrySettings(null, new TraditionalEncryptionSettings("123@45")));

// Adicionar pasta ao arquivo
archive.CreateEntries("C:\\Files\\MyFolder");

// salve o arquivo
archive.Save("C:\\Files\\password_protcted_folder.zip");

Criptografar arquivos específicos em arquivos ZIP

Você pode criptografar arquivos específicos nos arquivos ZIP programaticamente seguindo as etapas abaixo:

  1. Crie uma instância da classe Archive.
  2. Chame o método CreatEntry() com o caminho do arquivo de entrada para adicionar ao arquivo.
  3. Defina a senha para o arquivo usando ArchiveEntrySettings com TraditionalEncryptionSettings.
  4. Chame o método CreatEntry() com o caminho do arquivo de entrada para adicionar outro arquivo ao arquivo.
  5. Repita as etapas acima para adicionar mais arquivos.
  6. Chame o método Save() com o caminho do arquivo de saída para salvar o arquivo de saída.

O exemplo de código a seguir mostra como criptografar arquivos específicos no arquivo ZIP usando C#.

// criar um arquivo
Archive archive = new Archive();

// Adicionar arquivos ao arquivo
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt");
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt", false, new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("123@abc")));

// salve o arquivo
archive.Save("C:\\Files\\password_protcted.zip");
Criptografar arquivos específicos em arquivos ZIP

Criptografar arquivos específicos em arquivos ZIP

Crie arquivos ZIP criptografados com criptografia mista

Você pode criar arquivos ZIP contendo arquivos e pastas protegidos com técnicas de criptografia mistas que variam para cada arquivo e pasta programaticamente seguindo as etapas abaixo:

  1. Crie uma instância da classe Archive.
  2. Chame o método CreatEntry() com o caminho do arquivo de entrada para adicionar ao arquivo.
  3. Defina a senha para o arquivo usando o ArchiveEntrySettings com o AesEcryptionSettings.
  4. Chame o método CreatEntry() com o caminho do arquivo de entrada para adicionar outro arquivo ao arquivo.
  5. Defina a senha para o arquivo usando ArchiveEntrySettings com TraditionalEncryptionSettings.
  6. Chame o método CreatEntry() com o caminho do arquivo de entrada para adicionar outro arquivo ao arquivo.
  7. Chame o método CreateEntries() com o caminho da pasta para adicionar ao arquivo.
  8. Salve o arquivo de saída usando o método Save() com o caminho do arquivo de saída.

O exemplo de código a seguir mostra como criar um arquivo ZIP com técnicas de criptografia mistas usando C#.

// criar um arquivo
Archive archive = new Archive();

// Adicionar arquivo com criptografia AES ao arquivo
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt", false, new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128)));

// Adicionar arquivo com criptografia tradicional ao arquivo
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt", false, new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("321")));

// Adicionar arquivo sem criptografia ao arquivo
archive.CreateEntry("sample3.txt", "C:\\Files\\sample2.txt");

// Adicionar pasta sem criptografia ao arquivo
archive.CreateEntries("C:\\Files\\MyFolder");

// salve o arquivo
archive.Save("C:\\Files\\Mixed.zip");
Crie arquivos ZIP criptografados com criptografia mista

Criar arquivo ZIP criptografado com criptografia mista

Obtenha uma licença gratuita

Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como criar arquivos ZIP criptografados usando C#. Você também aprendeu como criar um arquivo ZIP protegido por senha programaticamente. Além disso, você aprendeu como criptografar arquivos específicos nos arquivos ZIP. Além disso, você aprendeu como adicionar pastas protegidas por senha a arquivos ZIP. Este artigo também explicou como criar um arquivo ZIP criptografado com técnicas de criptografia mistas usando C#. Você pode aprender mais sobre Aspose.ZIP para .NET API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.

Veja também