Desbloquear contraseña ZIP
Contraseña olvidada
Es común olvidar la contraseña “parcialmente”, es decir. mi. Recuerda algunos personajes y olvida otros. La API Aspose.ZIP te permite jugar con contraseñas medio olvidadas para desbloquear el archivo. Este artículo muestra cómo adivinar la contraseña de descifrado del archivo zip cifrado con AES.
Plantilla de contraseña de identificación
Digamos que su contraseña comienza con el símbolo “T0p$ecret” seguido de una letra mayúscula en inglés y dos dígitos. Entonces, podemos describir una plantilla como esta:
1string template = "T0p$ecret{0}{1}";
donde el marcador de posición anterior es para letras mayúsculas en inglés, el último es para números de dos dígitos.
Verificando contraseña única
Este simple código de descifrado
1 using (var a = new Archive("encrypted.zip", new ArchiveLoadOptions() {DecryptionPassword = password}))
2 a.ExtractToDirectory(".");
genera una InvalidDataException si se ha proporcionado una contraseña incorrecta.
Ataque de fuerza bruta al archivo
Así que redacte y pruebe las contraseñas una por una. Si el programa tiene éxito, imprime la contraseña adecuada en la consola.
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 }