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 }