Ich habe einen Wörterbuchangriff auf verschlüsselte ZIP-Dateien mit der zipfile
-Bibliothek gemacht. Als ich anfing, BIG-Wörterbücher zu benutzen, bekam ich manchmal falsch positive Ergebnisse, d. H. Passwort könnte "Wolle" sein und "12630" wurde als korrekt angesehen. In diesem Fall enthielt die entschlüsselte Datei offensichtlich Kauderwelsch.Zipfile-Modul gibt unzuverlässige Ergebnisse
Es ist kein Fehler in meinem Code, aber in der Weise, wie die zipfile
Bibliothek überprüft, ob das angegebene Passwort korrekt ist. Ich habe es geschafft, die Fehlalarme zu verringern, indem ich die Größe der entschlüsselten Datei überprüfe und wenn sie gleich 0 ist, halte sie für falsch und suche weiter. Aber mein Problem bleibt bestehen, denn wenn die Datei Kauderwelsch enthält, ist die Größe> 0. Also meine Frage ist, gibt es eine Möglichkeit, in Python zu bestimmen, ob eine Datei korrekt entschlüsselt wurde oder ob sie Kauderwelsch enthält?
PS. Ja, ich weiß entschlüsseln Zip-Dateien mit zipfile
ist langsam, aber wie ich schon sagte, ich mache dies, um einen Griff von Python zu bekommen.
Hier ist mein Code:
import zipfile
import os
zfile=raw_input("Please input zip's file name\n")
diction=raw_input("Please input dictionary\n")
found = False
zipf = zipfile.ZipFile(zfile, 'r')
f = open(diction, 'r')
for line in f:
pswd = line
pswd = pswd[:-1]
zipf.setpassword(pswd)
try:
zipf.extractall()
if (os.path.getsize(zfile[:-4]) != 0):
found = True
break
except RuntimeError:
continue
except Exception:
continue
zipf.close()
This ist ein Bug-Report i in Python Bug-Tracker submited. Wie Sie sehen, betrachten sie es nicht als einen "Fehler" der Bibliothek, deshalb frage ich nach Alternativen, um zu überprüfen, ob die Datei korrekt entschlüsselt wurde.
PS. Für alle, die sich darum kümmern, haben sie mir in dem obigen Link gesagt, dass es sich um ein Problem des Zip-Dateiformats handelt und dass nichts getan werden kann. Also ich denke, die Frage ist irgendwie beantwortet.
Wenn Sie bestätigen, dass die Python-ZIP-Datei einen Bug hat, müssen Sie dies dem Python-Bug-Tracker melden. – mouad
habe ich schon und was Nathan eingefügt hat ist ihre Antwort. Art von erinnert an "es ist kein Fehler, es ist ein Feature". Deshalb frage ich nach Wegen, um zu überprüfen, ob die entschlüsselte Datei beschädigt ist oder nicht. – Erethon
Gibt es Fälle, in denen ein falsches Passwort keine Ausnahme erzeugt? – jfs