ZIP-Kennwort freischalten
Vergessenes Passwort
Es ist �blich, Passw�rter “teilweise” zu vergessen, d. h. sich an einige Zeichen zu erinnern und andere zu vergessen. Mit Aspose.ZIP API kann man mit solchen halb vergessenen Passw�rtern spielen, um das Archiv zu entschl�sseln. Dieser Artikel zeigt, wie man das Entschl�sselungspasswort eines AES-verschl�sselten ZIP-Archivs err�t.
Kennwortvorlage identifizieren
Angenommen, Ihr Kennwort beginnt mit den Symbolen “T0p$ecret”, gefolgt von einem englischen Gro�buchstaben und zwei Ziffern. Wir k�nnen also eine Vorlage wie folgt beschreiben:
1String template = "T0p$ecret{0}{1}";Einzelpasswort �berpr�fen
Dieser einfache Entschl�sselungscode
1ArchiveLoadOptions options = new ArchiveLoadOptions();
2options.setDecryptionPassword(passwort);
3try (Archiv a = new Archiv("verschl�sselt.zip", Optionen))
4 a.extractToDirectory(".");Brute-Force-Angriff auf das Archiv
Stellen Sie also die Passw�rter zusammen und testen Sie eines nach dem anderen. Im Erfolgsfall gibt das Programm das richtige Passwort auf der Konsole aus.
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(passwort);
10 try (Archive a = new Archive("verschl�sselt.zip", options)) {
11 a.extractToDirectory(".");
12 richtig = wahr;
13 }
14 catch (InvalidDataException e)
15 {
16 richtig = falsch;
17 }
18
19 if (correct)
20 {
21 System.out.println("Proper password: " + password);
22 break;
23 }
24 }
25
26 if (correct)
27 break;
28}