Déverrouiller le mot de passe ZIP

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}" ;
où le premier caractère de remplacement correspond à une lettre anglaise majuscule et le second à un nombre à deux chiffres.

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(".") ;
lève une InvalidDataException si un mauvais mot de passe a été fourni.

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}
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.