Desbloquear contraseña ZIP

**Contraseña olvidada

Es común olvidar la contraseña “parcialmente”, es decir, recordar algunos caracteres y olvidar otros. La API de Aspose.ZIP te permite jugar con esas contraseñas olvidadas a medias para desbloquear el archivo. Este artículo muestra cómo adivinar la contraseña de descifrado del archivo zip cifrado con AES.

Identificar plantilla de contraseña

Digamos que su contraseña empieza por los símbolos “T0p$ecret” seguidos de una letra mayúscula inglesa y dos dígitos. Entonces, podemos describir una plantilla así:

1Cadena plantilla = "T0p$ecret{0}{1}";
donde el primer marcador es para una letra mayúscula y el segundo para un número de dos dígitos.

Verificación de una contraseña

Este simple código de descifrado

1ArchiveLoadOptions options = new ArchiveLoadOptions();
2options.setDecryptionPassword(contraseña);
3try (Archive a = new Archive("cifrado.zip", opciones))
4    a.extractToDirectory(".");
genera una InvalidDataException si se ha proporcionado una contraseña incorrecta.

Ataque de fuerza bruta al archivo

Así que componga y pruebe las contraseñas una por una. Si hay éxito el programa imprime la contraseña correcta en la consola.

 1String plantilla = "T0p$secreto{0}{1}";
 2for (char c = 'A'; c < 'Z'; c++)
 3{
 4    boolean correcto = false
 5    for (int i = 10; i < 99; i++)
 6    {
 7        String contraseña = MessageFormat.format(plantilla, c, i);
 8        ArchiveLoadOptions options = new ArchiveLoadOptions();
 9        options.setDecryptionPassword(contraseña);
10        try (Archive a = new Archive("cifrado.zip", opciones)) {
11            a.extractToDirectory(".");
12            correcto = true;
13        }
14        catch (InvalidDataException e)
15        {
16            correcto = 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.