Archives prot�g�es par mot de passe

L’API Aspose.ZIP vous permet de compresser et d�compresser des fichiers en C# ou dans n’importe quel langage .NET sans vous soucier de la structure des fichiers sous-jacents. Cet article fournit des exemples de mise en �uvre d’une protection par mot de passe avec des sch�mas de chiffrement traditionnels et AES. De plus, il montre comment travailler avec des r�pertoires et compresser plusieurs fichiers � l’aide de techniques de cryptage mixtes.

Protection par mot de passe avec cryptage traditionnel

Aspose.ZIP permet une protection par mot de passe traditionnelle pour les fichiers compress�s. � l’aide d’un simple mot de passe, vous pouvez s�curiser des fichiers individuels ou des r�pertoires entiers dans une archive, garantissant ainsi que seuls les utilisateurs autoris�s peuvent en extraire le contenu.

Cryptez les fichiers avec le sch�ma de cryptage traditionnel

Chiffrez les fichiers � l�aide d�une m�thode de cryptage traditionnelle plus simple. Cette approche permet une protection de base par mot de passe des archives, garantissant que les fichiers sont compress�s en toute s�curit� tout en restant accessibles gr�ce � l’utilisation du mot de passe correct.

 1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
 2    using (FileStream zipFile = File.Open(dataDir + "CompressWithTraditionalEncryption_out.zip", FileMode.Create))
 3    {
 4        using (FileStream source1 = File.Open(dataDir + "alice29.txt", FileMode.Open, FileAccess.Read))
 5        {
 6            var archive = new Archive(new ArchiveEntrySettings(null, new TraditionalEncryptionSettings("p@s$")));
 7            archive.CreateEntry("alice29.txt", source1);
 8            archive.Save(zipFile);
 9        }
10    }

Crypter les fichiers avec le cryptage AES

Aspose.ZIP pour .NET fournit des fonctionnalit�s de cryptage pour vous aider � s�curiser les fichiers sensibles dans les archives. L’API prend en charge le cryptage AES, offrant plusieurs tailles de cl� (128 bits, 192 bits et 256 bits) pour diff�rents niveaux de s�curit�. Avec ces m�thodes de cryptage, vous pouvez vous assurer que vos donn�es sont bien prot�g�es et accessibles uniquement aux utilisateurs autoris�s.

Cryptage des fichiers avec AES128

Aspose.ZIP pour .NET fournit des fonctionnalit�s de cryptage pour vous aider � s�curiser les fichiers sensibles dans les archives. L’API prend en charge le cryptage AES, offrant plusieurs tailles de cl� (128 bits, 192 bits et 256 bits) pour diff�rents niveaux de s�curit�. Avec ces m�thodes de cryptage, vous pouvez vous assurer que vos donn�es sont bien prot�g�es et accessibles uniquement aux utilisateurs autoris�s. Voici un exemple de la fa�on dont cela est fait.

 1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
 2    using (FileStream zipFile = File.Open(dataDir + "PasswordProtectWithAES128_out.zip", FileMode.Create))
 3    {
 4        using (FileStream source1 = File.Open(dataDir + "alice29.txt", FileMode.Open, FileAccess.Read))
 5        {
 6            using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES128))))
 7            {
 8                archive.CreateEntry("alice29.txt", source1);
 9                archive.Save(zipFile);
10            }
11        }
12    }

Cryptage des fichiers avec AES192

Le cryptage AES192 offre un niveau de s�curit� plus �lev� que l’AES128, avec une surcharge de cryptage l�g�rement accrue. Cette m�thode convient aux sc�narios dans lesquels une protection plus forte est requise sans trop compromettre les performances. Consultez l�exemple suivant pour comprendre son utilisation.

 1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
 2    using (FileStream zipFile = File.Open(dataDir + "PasswordProtectWithAES192_out.zip", FileMode.Create))
 3    {
 4        using (FileStream source1 = File.Open(dataDir + "alice29.txt", FileMode.Open, FileAccess.Read))
 5        {
 6            using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES192))))
 7            {
 8                archive.CreateEntry("alice29.txt", source1);
 9                archive.Save(zipFile);
10            }
11        }
12    }

Cryptage des fichiers avec AES256

AES256 est l’option de cryptage la plus puissante disponible dans la famille AES, offrant une s�curit� maximale. Il est id�al pour prot�ger les donn�es hautement sensibles o� la plus grande s�curit� est n�cessaire, m�me si cela n�cessite plus de puissance de calcul pour le cryptage et le d�chiffrement. Voir l’exemple ci-dessous.

 1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
 2    using (FileStream zipFile = File.Open(dataDir + "PasswordProtectWithAES256_out.zip", FileMode.Create))
 3    {
 4        using (FileStream source1 = File.Open(dataDir + "alice29.txt", FileMode.Open, FileAccess.Read))
 5        {
 6            using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
 7            {
 8                archive.CreateEntry("alice29.txt", source1);
 9                archive.Save(zipFile);
10            }
11        }
12    }

R�pertoire prot�g� par mot de passe

En plus de chiffrer des fichiers individuels, Aspose.ZIP vous permet de prot�ger par mot de passe des r�pertoires entiers. Ceci est particuli�rement utile lorsque vous devez chiffrer plusieurs fichiers � la fois, en s�curisant tout le contenu d’un r�pertoire sous un seul mot de passe.

 1// Pour des exemples complets et des fichiers de donn�es, veuillez vous rendre sur https://github.com/aspose-zip/Aspose.ZIP-for-.NET
 2en utilisant (FileStream zipFile = File.Open(".\\all_corpus_encrypted_out.zip", FileMode.Create))
 3{
 4    Corpus DirectoryInfo = new DirectoryInfo(".\\CanterburyCorpus");
 5    using (var archive = new Archive(new ArchiveEntrySettings(null, new TraditionalEncryptionSettings("p@s$"))))
 6    {
 7        archive.CreateEntries(corpus);
 8        archive.Save(zipFile);
 9    }
10}        

Cryptez plusieurs fichiers avec des techniques de cryptage mixtesL’API prend �galement en charge l’utilisation de diff�rentes techniques de cryptage au sein de la m�me archive. Cela vous permet d’appliquer un m�lange d’algorithmes de chiffrement, tels que AES et la protection par mot de passe traditionnelle, � diff�rents fichiers en fonction de leurs exigences de sensibilit� et de s�curit�. Cette flexibilit� permet un contr�le plus granulaire de la protection des fichiers au sein d’une archive. Jetez un �il � cet exemple pour voir comment cela fonctionne dans la pratique.

 1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
 2    using (FileStream zipFile = File.Open(dataDir + "CompressWithTraditionalEncryption_out.zip", FileMode.Create))
 3    {
 4        using (FileStream source1 = File.Open(dataDir + "alice29.txt", FileMode.Open, FileAccess.Read))
 5        {
 6            var archive = new Archive(new ArchiveEntrySettings(null, new TraditionalEncryptionSettings("p@s$")));
 7            archive.CreateEntry("alice29.txt", source1);
 8            archive.Save(zipFile);
 9        }
10    }

D�compression des fichiers prot�g�s par mot de passe

Apr�s avoir chiffr� les archives, vous devrez �galement savoir comment d�crypter et extraire des fichiers en cas de besoin. Aspose.ZIP simplifie la d�compression des archives prot�g�es par mot de passe, que le cryptage traditionnel ou AES ait �t� utilis�. Vous pouvez extraire des fichiers individuellement ou d�compresser un r�pertoire crypt� entier.

D�compression des archives traditionnellement prot�g�es par mot de passe

Extrayez facilement les fichiers prot�g�s par un mot de passe traditionnel. Cette m�thode g�re les archives s�curis�es � l’aide d’anciennes techniques de cryptage, garantissant l’acc�s � vos donn�es une fois le mot de passe correct fourni.

 1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
 2    using (FileStream fs = File.OpenRead(dataDir + "CompressWithTraditionalEncryption_out.zip"))
 3    {
 4        using (var extracted = File.Create(dataDir + "alice_extracted_out.txt"))
 5        {
 6            using (Archive archive = new Archive(fs, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
 7            {
 8                using (var decompressed = archive.Entries[0].Open())
 9                {
10                    byte[] b = new byte[8192];
11                    int bytesRead;
12                    while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
13                    {
14                        extracted.Write(b, 0, bytesRead);
15                    }
16                }
17            }
18        }
19    }

D�compresser les archives crypt�es AES

Cette section explique comment extraire des fichiers crypt�s � l’aide d’AES, l’une des normes de cryptage les plus s�curis�es. Que vous ayez affaire � AES128, AES192 ou AES256, le processus d’extraction est simple tant que la cl� de d�chiffrement correcte est fournie.

 1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
 2    using (FileStream fs = File.OpenRead(dataDir + "PasswordProtectWithAES256_out.zip"))
 3    {
 4        using (var extracted = File.Create(dataDir + "alice_aesextracted_out.txt"))
 5        {
 6            using (Archive archive = new Archive(fs))
 7            {
 8                using (var decompressed = archive.Entries[0].Open("p@s$"))
 9                {
10                    byte[] b = new byte[8192];
11                    int bytesRead;
12                    while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
13                    {
14                        extracted.Write(b, 0, bytesRead);
15                    }
16                }
17            }
18        }
19    }

D�compresser les archives stock�es crypt�es AES

Extrayez des fichiers d’une archive qui a �t� crypt�e et stock�e sans compression. Ce processus garantit que m�me les fichiers non compress�s restent s�curis�s, prot�geant les donn�es sensibles tout en conservant la structure des fichiers d’origine.

 1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
 2    using (FileStream fs = File.OpenRead(dataDir + "StoreMutlipleFilesWithoutCompressionWithPassword_out.zip"))
 3    {
 4        using (var extracted = File.Create(dataDir + "alice_aesextracted_out.txt"))
 5        {
 6            using (Archive archive = new Archive(fs, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
 7            {
 8                using (var decompressed = archive.Entries[0].Open())
 9                {
10                    byte[] b = new byte[8192];
11                    int bytesRead;
12                    while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
13                    {
14                        extracted.Write(b, 0, bytesRead);
15                    }
16                }
17            }
18        }
19    }

D�compresser le dossier crypt� dans le r�pertoire

Extrayez des r�pertoires crypt�s entiers dans leur structure de dossiers d’origine. Ce processus restaure tous les fichiers de l’archive crypt�e dans un r�pertoire sp�cifi� tout en pr�servant leur hi�rarchie et leur s�curit� d’origine, � condition que la cl� de d�chiffrement correcte soit utilis�e.

1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2    using (FileStream zipFile = File.Open(".\\all_corpus_encrypted.zip", FileMode.Open))
3    {
4        new Archive(zipFile, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }).ExtractToDirectory(".\\all_corpus_decrypted");
5    }

D�compression des archives

Aspose.ZIP pour .NET propose une API facile � utiliser pour d�compresser les archives, qu’elles contiennent un seul fichier, plusieurs fichiers ou m�me des fichiers stock�s sans compression. Cette section pr�sente divers sc�narios de d�compression, fournissant des solutions efficaces pour extraire vos donn�es compress�es.

** D�compresser l’archive ayant un seul fichier **

Dans les sc�narios o� une archive ne contient qu’un seul fichier, la d�compression est simple. Vous pouvez extraire le contenu de l’archive rapidement et avec une surcharge minimale, garantissant ainsi l’int�grit� des donn�es d’origine � l’aide de l’exemple suivant�:

 1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
 2    using (FileStream fs = File.OpenRead(dataDir + "CompressSingleFile_out.zip"))
 3    {
 4        using (Archive archive = new Archive(fs))
 5        {
 6            int percentReady = 0;
 7            archive.Entries[0].ExtractionProgressed += (s, e) =>
 8            {
 9                int percent = (int)((100 * e.ProceededBytes) / ((ArchiveEntry)s).UncompressedSize);
10                if (percent > percentReady)
11                {
12                    Console.WriteLine(string.Format("{0}% decompressed", percent));
13                    percentReady = percent;
14                }
15            };
16            archive.Entries[0].Extract(dataDir + "alice_extracted_out.txt");
17        }
18    }

** D�compresser l’archive contenant plusieurs fichiers **

Lorsque vous travaillez avec des archives contenant plusieurs fichiers, notre API simplifie le processus d’it�ration des entr�es et de leur extraction efficace. Le suivi de la progression bas� sur les �v�nements pendant l’extraction est particuli�rement utile pour surveiller les t�ches de d�compression volumineuses.

 1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
 2    using (FileStream zipFile = File.Open(dataDir + "CompressMultipleFiles_out.zip", FileMode.Open))
 3    {
 4        StringBuilder sb = new StringBuilder("Entries are: ");
 5        int percentReady = 0;
 6        using (Archive archive = new Archive(zipFile,
 7            new ArchiveLoadOptions()
 8            {
 9                EntryListed = (s, e) => { sb.AppendFormat("{0}, ", e.Entry.Name); },
10                EntryExtractionProgressed = (s, e) =>
11                {
12                    int percent = (int)((100 * e.ProceededBytes) / ((ArchiveEntry)s).UncompressedSize);
13                    if (percent > percentReady)
14                    {
15                        Console.WriteLine(string.Format("{0}% compressed", percent)); percentReady = percent;
16                    }
17                }
18            }))
19        {
20            Console.WriteLine(sb.ToString(0, sb.Length - 2));
21            using (var extracted = File.Create(dataDir + "alice_extracted_out.txt"))
22            {
23                using (var decompressed = archive.Entries[0].Open())
24                {
25                    byte[] buffer = new byte[8192];
26                    int bytesRead;
27                    while (0 < (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
28                    {
29                        extracted.Write(buffer, 0, bytesRead);
30                    }
31                    // Read from decompressed stream to extracting file.
32                }
33            }
34            percentReady = 0;
35            archive.Entries[1].Extract(dataDir + "asyoulik_extracted_out.txt");
36        }
37    }

Extraire les archives stock�es sans compression

Les archives stock�es, qui contiennent des fichiers qui n’ont pas �t� compress�s, sont �galement prises en charge par l’API Aspose.Zip. Bien que ces archives ne r�duisent pas la taille des fichiers, elles permettent un acc�s rapide et une extraction efficace des donn�es stock�es. Ceci est utile lorsque vous devez regrouper des fichiers sans modifier leur structure.

 1    // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
 2    using (FileStream zipFile = File.Open(dataDir + "StoreMultipleFilesWithoutCompression_out.zip", FileMode.Open))
 3    {
 4        using (Archive archive = new Archive(zipFile))
 5        {
 6            using (var extracted = File.Create(dataDir + "alice_extracted_store_out.txt"))
 7            {
 8                using (var decompressed = archive.Entries[0].Open())
 9                {
10                    byte[] buffer = new byte[8192];
11                    int bytesRead;
12                    while (0 < (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
13                    {
14                        extracted.Write(buffer, 0, bytesRead);
15                    }
16                    // Read from decompressed stream to extracting file.
17                }
18            }
19
20            using (var extracted = File.Create(dataDir + "asyoulik_extracted_store_out.txt"))
21            {
22                using (var decompressed = archive.Entries[1].Open())
23                {
24                    byte[] buffer = new byte[8192];
25                    int bytesRead;
26                    while (0 < (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
27                    {
28                        extracted.Write(buffer, 0, bytesRead);
29                    }
30                    // Read from decompressed stream to extracting file.
31                }
32            }
33        }
34    }

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.