D�verrouiller le mot de passe ZIP
Contents
[
Hide
Show
]Mot de passe oubli�
Il est courant d’oublier “partiellement” son mot de passe, c’est-�-dire de se souvenir de certains caract�res et d’en oublier d’autres. L’API Aspose.ZIP vous permet de jouer avec ces mots de passe � moiti� oubli�s pour d�verrouiller l’archive. Cet article montre comment deviner le mot de passe de d�cryptage de l’archive zip crypt�e AES.
Identification du mod�le de mot de passe
Supposons que votre mot de passe commence par les symboles “T0p$ecret” suivis d’une lettre anglaise majuscule et de deux chiffres. Nous pouvons donc d�crire un mod�le comme suit :
1Cha�ne template = "T0p$ecret{0}{1}" ;V�rification d’un mot de passe unique
Ce code de d�cryptage simple
1ArchiveLoadOptions options = new ArchiveLoadOptions() ;
2options.setDecryptionPassword(password) ;
3try (Archive a = new Archive("encrypted.zip", options))
4 a.extractToDirectory(".") ;Attaque par force brute de l’archive
Composez et testez les mots de passe un par un. En cas de succ�s, le programme affiche le bon mot de passe sur la console.
1String template = "T0p$ecret{0}{1}" ;
2for (char c = 'A' ; c < 'Z' ; c++)
3{
4 boolean correct = false ;
5 for (int i = 10 ; i < 99 ; i++)
6 {
7 String password = MessageFormat.format(template, c, i) ;
8 ArchiveLoadOptions options = new ArchiveLoadOptions() ;
9 options.setDecryptionPassword(password) ;
10 try (Archive a = new Archive("encrypted.zip", options)) {
11 a.extractToDirectory(".") ;
12 correct = true ;
13 }
14 catch (InvalidDataException e)
15 {
16 correct = false ;
17 }
18
19 if (correct)
20 {
21 System.out.println("Proper password: " + password);
22 break;
23 }
24 }
25
26 if (correct)
27 break;
28}