Seite 1 von 2
Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Montag 31. Dezember 2018, 14:40
von Paigner
Ich habe diesen Code in meinem Script:
Code: Alles auswählen
from zipfile import ZipFile
password = 'abc'
zip = zipfile.ZipFile('test.zip')
zip.extractall(pwd=bytes(password,'utf-8'))
#zip.close()
Und wenn ich ihn ausführe erscheint das:
Code: Alles auswählen
Traceback (most recent call last):
File "C:\User\Paigner\Documents\Python\Test.py", line 5, in <module>
zip.extractall(pwd=bytes(password,'utf-8'))
File "C:\Program Files (x86)\Python37-32\lib\zipfile.py", line 1594, in extractall
self._extract_member(zipinfo, path, pwd)
File "C:\Program Files (x86)\Python37-32\lib\zipfile.py", line 1647, in _extract_member
with self.open(member, pwd=pwd) as source, \
File "C:\Program Files (x86)\Python37-32\lib\zipfile.py", line 1516, in open
raise RuntimeError("Bad password for file %r" % name)
RuntimeError: Bad password for file <ZipInfo filename='test.txt' compress_type=99 external_attr=0x20 file_size=0 compress_size=28>
Ich habe das zip.close() ausgeklammert weil das eh nicht ausgeführt wird.
Bin leider mit meinem Latein am Ende :/
Kann mir jemand helfen?
PS meine Zip Datei habe ich mit Winrar gezipt--Falls das was ausmacht

Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Montag 31. Dezember 2018, 16:03
von __blackjack__
Das Netz behauptet das WinZip Passwörter als CP1252 kodiert. Vielleicht das mal probieren?
Warum verschlüsselst Du denn? Die PKWARE-Verschlüsselung die das `zipfile`-Modul entschlüsseln kann ist uralt und gilt als unsicher.
Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Montag 31. Dezember 2018, 16:39
von snafu
Oder zum Entschlüsseln einfach das selbe Programm nehmen (hier: WinRAR). Das ist wie bei anderen Dateitypen: Ich kann auch nicht erwarten, dass mein MS Word Dokument mit Spezial-Features garantiert genau so auch in LibreOffice angezeigt wird. Für ZIP-Dateien gibt es keine festen Standards. Wenn es über einfache Operationen hinausgeht, dann kann sich jedes Programm anders verhalten bzw fehlerhaft arbeiten.
Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Montag 31. Dezember 2018, 18:09
von __blackjack__
@snafu: Naja, im Grunde gibt es schon einen Standard. Das Problem dabei ist eher das der vorsieht das Anbieter da Erweiterungen einbauen können, und die das halt auch machen. Aber nicht jeder Anbieter verarbeitet auch die Erweiterungen der anderen. Plus eventuelle Fehler beim erstellen oder auspacken in den einzelnen Anwendungen/Bibliotheken.
Plattformübergreifend und sowohl frei als auch kostenlos verfügbar und mit guter Kompression und sicherer Verschlüsselung ist 7zip.
Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Dienstag 1. Januar 2019, 01:22
von Sirius3
@Paigner: Die Meldung sagt, dass compress_type=99 ist, das bedeutet, dass WinRar mit AES verschlüsselt hat, das kann zipfile aber nicht. Die beste Methode ist wohl, auf ein externes Programm auszuweichen.
Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Dienstag 1. Januar 2019, 10:59
von Paigner
__blackjack__ hat geschrieben: Montag 31. Dezember 2018, 16:03
Das Netz behauptet das WinZip Passwörter als CP1252 kodiert. Vielleicht das mal probieren?
Und wie geht das

Bin noch ein "realativer" Neuling in Python
Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Dienstag 1. Januar 2019, 11:02
von Paigner
Sirius3 hat geschrieben: Dienstag 1. Januar 2019, 01:22
@Paigner: Die Meldung sagt, dass compress_type=99 ist, das bedeutet, dass WinRar mit AES verschlüsselt hat, das kann zipfile aber nicht. Die beste Methode ist wohl, auf ein externes Programm auszuweichen.
Meine Idee war es eigtl ein Programm zu programmieren das eine beliebige *.zip datei entschlüsselt, und wenn sie Passwort geschützt ist, dass das Programm nach dem Passwort fragt und die Datei dann trotzdem Extrahiert.
Gibt es da eine Möglichkeit?
(Also sowohl WinRar.zip Datein als auch 7zip zu extrahieren?
Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Dienstag 1. Januar 2019, 11:03
von Paigner
Danke für eure Antworten

Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Dienstag 1. Januar 2019, 11:06
von Paigner
Sirius3 hat geschrieben: Dienstag 1. Januar 2019, 01:22
@Paigner: Die Meldung sagt, dass compress_type=99 ist, das bedeutet, dass WinRar mit AES verschlüsselt hat, das kann zipfile aber nicht. Die beste Methode ist wohl, auf ein externes Programm auszuweichen.
Wieso geht es dann aber wenn die WinRar.zip Datei ohne Passwort geschütz ist?
(mit dem gleichen Code nur pwd=None)
Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Dienstag 1. Januar 2019, 11:09
von __deets__
Weil die Verschlüsselung der Teil ist, der den Unterschied macht. Das ist nicht standardisiert.
Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Dienstag 1. Januar 2019, 11:27
von Paigner
__deets__ hat geschrieben: Dienstag 1. Januar 2019, 11:09
Weil die Verschlüsselung der Teil ist, der den Unterschied macht. Das ist nicht standardisiert.
Und wie kann ich das Problem dann Lösen?
Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Dienstag 1. Januar 2019, 11:36
von Paigner
Noch mal kleines Update:
Wenn ich die Datei mit 7zip "zippe" dann funktioniert alles ohne Probleme!

Allerding wie bekomme ich es hin, dass auch WinRar dateien klappen?
Hat da vielleicht jemand eine Idee?
Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Dienstag 1. Januar 2019, 12:04
von noisefloor
Hallo,
Allerding wie bekomme ich es hin, dass auch WinRar dateien klappen?
Gar nicht bzw. nur dann, wenn du sicherstellst, dass die mit WinRAR gezippte Datei so verschlüsselt ist, dass das Modul als der Standardbibliothek das entschlüsseln kann. Hier ist die Funktionalität von zipfile aber sehr dünn. Dazu gab es kürzlich schon mal einen Thread:
Link.
Ggf. müsstest du halt auf ein externes Modul ausweichen, dass mehr Verschlüsselungsarten kann.
Gruß, noisefloor
Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Dienstag 1. Januar 2019, 14:53
von __blackjack__
@Paigner: Wenn Du mit 7zip und verschlüsselt packst und das `zipfile`-Modul das tatsächlich lesen kann, dann hast Du die uralte, unsichere Verschlüsselung gewählt. Die sollte man nicht mehr verwenden.
Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Dienstag 1. Januar 2019, 16:58
von Paigner
noisefloor hat geschrieben: Dienstag 1. Januar 2019, 12:04
Ggf. müsstest du halt auf ein externes Modul ausweichen, dass mehr Verschlüsselungsarten kann.
Kennt jemand eines das die neue "AES-256" kodierung unterstützt?
Danke für eure Antworten und Aktivität

Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Dienstag 1. Januar 2019, 17:32
von __blackjack__
@Paigner: Das war jetzt nicht wirklich so schwer zu finden:
https://pypi.org/project/pyzipper/
Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Mittwoch 2. Januar 2019, 09:29
von Paigner
Danke

))
Hat jemand nch eine Idee wie ich überprüfen kann welche Methode das Programm anwenden soll?
Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Mittwoch 2. Januar 2019, 11:26
von __blackjack__
@Paigner: Sorry, ich verstehe die Frage nicht‽
Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Donnerstag 3. Januar 2019, 10:27
von DeaD_EyE
Vielleicht meint er damit die Art der nicht standardisierten AES Verschlüsselung vs. standardisierten Passwortschutz?
Naive Lösung: Eine Funktion, die zuerst die das eine Modul verwendet und wenn das eine Exeception wirft, dass das Modul aus der Standardbibliothek verwenden.
Das dürfte nicht so schwer sein.
Re: Python 3.7 Zip File mit Passwort extrahieren?
Verfasst: Donnerstag 3. Januar 2019, 10:47
von __blackjack__
Naive Lösung wäre einfach korrekterweise anzunehmen, dass der Autor von `pyzipper` seine Klassen von denen aus dem `zipfile`-Modul abgeleitet hat und man deshalb keine Unterscheidung beim entpacken braucht.
