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}