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 }