D�verrouiller le mot de passe ZIP
Mot de passe oubli�
Il est courant d’oublier le mot de passe “en partie”, c’est-�-dire. e. m�moriser certains personnages en en oubliant d’autres. L’API Aspose.ZIP vous permet de jouer avec de tels mots de passe � moiti� oubli�s pour d�verrouiller l’archive. Cet article montre comment deviner le mot de passe de d�chiffrement de l’archive zip crypt�e par AES.
Mod�le de mot de passe d’identification
Disons que votre mot de passe commence par les symboles � T0p$ecret � suivis d’une lettre majuscule anglaise et de deux chiffres. Ainsi, nous pouvons d�crire un mod�le comme ceci�:
1string template = "T0p$ecret{0}{1}";o� l’ancien espace r�serv� est pour la lettre majuscule anglaise, le second est pour un nombre � deux chiffres.
V�rification d’un mot de passe unique
Ce simple code de d�cryptage
1 using (var a = new Archive("encrypted.zip", new ArchiveLoadOptions() {DecryptionPassword = password}))
2 a.ExtractToDirectory(".");g�n�re une InvalidDataException si un mauvais mot de passe a �t� fourni.
Attaque par force brute sur les archives
Alors composez et testez les mots de passe un par un. En cas de succ�s, le programme imprime le mot de passe appropri� sur la console.
1 string template = "T0p$ecret{0}{1}";
2 for (char c = 'A'; c < 'Z'; c++)
3 {
4 bool correct = false;
5 for (int i = 10; i < 99; i++)
6 {
7 string password = string.Format(template, c, i);
8 try
9 {
10 using (Archive a = new Archive("encrypted.zip", new ArchiveLoadOptions() {DecryptionPassword = password}))
11 a.ExtractToDirectory(".");
12 correct = true;
13 }
14 catch (System.IO.InvalidDataException e)
15 {
16 correct = false;
17 }
18
19 if (correct)
20 {
21 Console.WriteLine($"Proper password: {password}");
22 break;
23 }
24 }
25
26 if (correct)
27 break;
28 }