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}