aggiungi-file-o-cartelle-a-zip-archivi-usando-csharp

I file ZIP sono i tipi più comuni di file di archivio utilizzati per conservare file e cartelle compressi in un unico contenitore. Come sviluppatore C#, puoi creare facilmente archivi ZIP crittografati o protetti da password a livello di codice usando C# nelle tue applicazioni .NET. In questo articolo imparerai come creare file ZIP crittografati usando C#.

I seguenti argomenti sono discussi/trattati in questo articolo:

API C# per creare file ZIP crittografati

Per creare archivi ZIP crittografati, utilizzerò Aspose.ZIP for .NET API. Ti consente di comprimere file e cartelle e aggiungerli agli archivi ZIP. Consente inoltre di decomprimere archivi di tipi supportati come ZIP, TAR, GZIP, BZ2, 7Zip, RAR, ecc. L’API fornisce protezione tramite password definite dall’utente e tecniche di crittografia tradizionali utilizzando la crittografia AES come AES128, AES192 e AES256 .

Puoi scaricare la DLL dell’API o installarla utilizzando NuGet.

Install-Package Aspose.ZIP

Crea file ZIP protetti da password

Puoi creare facilmente archivi ZIP protetti da password in modo programmatico seguendo i passaggi indicati di seguito:

  1. Crea un’istanza della classe Archive con l’oggetto ArchiveEntrySettings.
  2. Impostare la password utilizzando l’oggetto TraditionalEncryptionSettings.
  3. Chiama il metodo CreatEntry() con il percorso del file di input da aggiungere all’archivio.
  4. Ripetere il passaggio precedente per aggiungere più file.
  5. Chiama il metodo Save() con il percorso del file di output per salvare il file di output.

L’esempio di codice seguente mostra come creare un file ZIP protetto da password usando C#.

// creare un archivio
Archive archive = new Archive(new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("12345")));

// Aggiungi file all'archivio
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt");
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt");

// salvare l'archivio
archive.Save("C:\\Files\\password_protcted.zip");
Crea archivi ZIP protetti da password

Crea archivi ZIP protetti da password

La classe Archive rappresenta un file di archivio ZIP. Fornisce diversi metodi per creare, comporre, estrarre o aggiornare archivi ZIP. Il metodo CreatEntry() di questa classe crea una singola voce di un file all’interno dell’archivio. Prende il nome del file e il percorso del file completo come parametri di input. Questa classe fornisce anche metodi CreatEntry() sovraccaricati per aggiungere file da stream o FileInfo. Il metodo Save() di questa classe salva l’archivio ZIP nel percorso del file specificato.

La classe ArchiveEntrySettings fornisce le impostazioni per comprimere o decomprimere le voci. La classe TraditionalEncryptionSetings fornisce le impostazioni per l’algoritmo ZipCrypto tradizionale. È un algoritmo di protezione con password ZIP. La proprietà Password di questa classe consente di ottenere o impostare una password per la crittografia o la decrittografia di file e cartelle in un archivio ZIP.

Crea file ZIP crittografati con crittografia AES

Puoi crittografare i tuoi archivi ZIP con la crittografia AES in modo programmatico seguendo i passaggi indicati di seguito:

  1. Crea un’istanza della classe Archive con l’oggetto ArchiveEntrySettings.
  2. Impostare la password utilizzando la classe AesEcryptionSettings. Passa la stringa della password e EncryptionMethod come argomenti al costruttore.
  3. Chiama il metodo CreatEntry() con il percorso del file di input da aggiungere all’archivio.
  4. Ripetere il passaggio precedente per aggiungere più file.
  5. Chiama il metodo Save() con il percorso del file di output per salvare il file di output.

L’esempio di codice seguente mostra come creare un file ZIP crittografato con crittografia AES usando C#.

// creare un archivio
Archive archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128)));

// Aggiungi file all'archivio
archive.CreateEntry("abc.txt", "C:\\Files\\sample1.txt");

// salvare l'archivio
archive.Save("C:\\Files\\aes.zip");

La classe AesEncryptionSettings fornisce le impostazioni per la crittografia AES o l’algoritmo di decrittografia. L’Advanced Encryption Standard (AES) è un algoritmo di crittografia simmetrica o decrittografia a blocchi.

È possibile utilizzare i seguenti tipi di metodi di crittografia:

  • Tradizionale: crittografia PKWARE tradizionale
  • AES128 — Standard di crittografia avanzato con lunghezza della chiave 128 bit
  • AES192 — Standard di crittografia avanzato con lunghezza della chiave 192 bit
  • AES256 — Standard di crittografia avanzato con lunghezza della chiave 256 bit

Crittografa le cartelle nei file ZIP

È possibile aggiungere cartelle protette da password ai file ZIP in modo programmatico seguendo i passaggi indicati di seguito:

  1. Crea un’istanza della classe Archive con l’oggetto ArchiveEntrySettings.
  2. Impostare la password utilizzando l’oggetto TraditionalEncryptionSettings.
  3. Chiama il metodo CreatEntries() con il percorso della cartella da aggiungere all’archivio.
  4. Ripetere il passaggio precedente per aggiungere più cartelle.
  5. Chiama il metodo Save() con il percorso del file di output per salvare il file di output.

L’esempio di codice seguente mostra come aggiungere una cartella crittografata al file ZIP usando C#.

// creare un archivio
Archive archive = new Archive(new ArchiveEntrySettings(null, new TraditionalEncryptionSettings("123@45")));

// Aggiungi cartella all'archivio
archive.CreateEntries("C:\\Files\\MyFolder");

// salvare l'archivio
archive.Save("C:\\Files\\password_protcted_folder.zip");

Crittografa file specifici negli archivi ZIP

È possibile crittografare file specifici negli archivi ZIP in modo programmatico seguendo i passaggi indicati di seguito:

  1. Crea un’istanza della classe Archive.
  2. Chiama il metodo CreatEntry() con il percorso del file di input da aggiungere all’archivio.
  3. Impostare la password per il file utilizzando ArchiveEntrySettings con TraditionalEncryptionSettings.
  4. Chiama il metodo CreatEntry() con il percorso del file di input per aggiungere un altro file all’archivio.
  5. Ripetere i passaggi precedenti per aggiungere più file.
  6. Chiama il metodo Save() con il percorso del file di output per salvare il file di output.

L’esempio di codice seguente mostra come crittografare file specifici nell’archivio ZIP usando C#.

// creare un archivio
Archive archive = new Archive();

// Aggiungi file all'archivio
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt");
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt", false, new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("123@abc")));

// salvare l'archivio
archive.Save("C:\\Files\\password_protcted.zip");
Crittografa file specifici negli archivi ZIP

Crittografa file specifici negli archivi ZIP

Crea file ZIP crittografati con crittografia mista

È possibile creare archivi ZIP contenenti file e cartelle protetti con tecniche di crittografia mista che variano per ogni file e cartella in modo programmatico seguendo i passaggi indicati di seguito:

  1. Crea un’istanza della classe Archive.
  2. Chiama il metodo CreatEntry() con il percorso del file di input da aggiungere all’archivio.
  3. Impostare la password per il file utilizzando ArchiveEntrySettings con AesEcryptionSettings.
  4. Chiama il metodo CreatEntry() con il percorso del file di input per aggiungere un altro file all’archivio.
  5. Impostare la password per il file utilizzando ArchiveEntrySettings con TraditionalEncryptionSettings.
  6. Chiama il metodo CreatEntry() con il percorso del file di input per aggiungere un altro file all’archivio.
  7. Chiama il metodo CreateEntries() con il percorso della cartella da aggiungere all’archivio.
  8. Salvare il file di output utilizzando il metodo Save() con il percorso del file di output.

Nell’esempio di codice seguente viene illustrato come creare un file ZIP con tecniche di crittografia mista usando C#.

// creare un archivio
Archive archive = new Archive();

// Aggiungi file con crittografia AES all'archivio
archive.CreateEntry("sample1.txt", "C:\\Files\\sample1.txt", false, new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128)));

// Aggiungi file con crittografia tradizionale all'archivio
archive.CreateEntry("sample2.txt", "C:\\Files\\sample2.txt", false, new ArchiveEntrySettings(encryptionSettings: new TraditionalEncryptionSettings("321")));

// Aggiungi file senza crittografia all'archivio
archive.CreateEntry("sample3.txt", "C:\\Files\\sample2.txt");

// Aggiungi la cartella senza crittografia all'archivio
archive.CreateEntries("C:\\Files\\MyFolder");

// salvare l'archivio
archive.Save("C:\\Files\\Mixed.zip");
Crea archivi ZIP crittografati con crittografia mista

Crea file ZIP crittografato con crittografia mista

Ottieni una licenza gratuita

Puoi provare l’API senza limitazioni di valutazione richiedendo una licenza temporanea gratuita.

Conclusione

In questo articolo, hai imparato come creare file ZIP crittografati usando C#. Hai anche imparato a creare un file ZIP protetto da password a livello di codice. Inoltre, hai imparato a crittografare file specifici negli archivi ZIP. Inoltre, hai imparato come aggiungere cartelle protette da password ai file ZIP. Questo articolo spiega anche come creare un file ZIP crittografato con tecniche di crittografia mista usando C#. Puoi saperne di più su Aspose.ZIP per .NET API usando la documentazione. In caso di ambiguità, non esitare a contattarci sul forum.

Guarda anche