ZIP Entpacken
ZIP-Archiv hochladen, Dateien anzeigen und extrahieren, einzeln oder komplett herunterladen
ZIP-Datei hierher ziehen oder klicken zum Auswählen
.zip Archiv-Dateien unterstützt
Was ist ZIP Entpacken?
ZIP-Extraktion öffnet ein Archiv und stellt die darin gespeicherten Dateien wieder her. Sie ist nützlich, wenn ein komprimiertes Paket ankommt, der Inhalt vor dem Herunterladen geprüft werden soll, nur eine Datei benötigt wird oder Dateinamen und Größen vor dem Vertrauen in ein Archiv kontrolliert werden sollen. Für normale Dateien ist ZIP verlustfrei, der Inhalt sollte nach dem Entpacken identisch sein. Entpacken macht unbekannte Inhalte jedoch nicht sicher. Archive können irreführende Dateinamen, unerwartete Ordner, sehr große entpackte Daten oder ausführbare Dateien enthalten, die nicht ungeprüft geöffnet werden sollten. Dieses Browser-Werkzeug liest das Archiv lokal und erlaubt das Herunterladen ausgewählter Dateien, eignet sich aber eher für kleine Prüfungen. Es ersetzt keine Sicherheitsprüfung verdächtiger Archive.
Anleitung
So geht's
- Ziehen Sie eine ZIP-Datei in den Upload-Bereich oder klicken Sie auf 'ZIP-Datei auswählen'
- Sehen Sie die Dateiliste und Dateiinformationen im Archiv
- Klicken Sie bei einer Datei auf 'Herunterladen', um sie zu entpacken
- Klicken Sie auf 'Alle entpacken', um alle Dateien als ZIP herunterzuladen
Sicherheit beim Entpacken
- Überprüfen Sie die Dateiliste, bevor Sie entpackte Dateien herunterladen – insbesondere wenn das Archiv aus unbekannter Quelle stammt.
- Seien Sie vorsichtig mit ausführbaren Dateien, verschachtelten Archiven und verdächtigen Dateinamen.
Anwendungsfälle
Technisches Prinzip
Das Lesen eines ZIP-Archivs erfolgt in umgekehrter Reihenfolge zum Schreiben. Der Browser empfängt die Datei als `ArrayBuffer` über die File API (`file.arrayBuffer()`) und der Leser scannt rückwärts vom Dateiende nach der End-of-Central-Directory-Signatur `0x06054b50` (PK\x05\x06). EOCD ist höchstens 22 Bytes plus ein optionaler Kommentar von bis zu 65.535 Bytes, sodass das Scanfenster begrenzt ist. EOCD verweist auf Offset und Größe des Zentralverzeichnisses, das einen Datei-Header (`0x02014b50`) pro Eintrag enthält. Jeder Datei-Header trägt die komprimierten und unkomprimierten Größen, CRC-32, Komprimierungsmethode, Dateinamen und den Offset des zugehörigen Lokalen Datei-Headers (`0x04034b50`). Der Leser kann dann direkt zu jedem einzelnen Eintrag seeken, ohne die vorherigen Einträge parsen zu müssen – daher ist die Einzeldatei-Extraktion aus einem mehrere GB großen Backup schnell. Die Dekomprimierung hängt vom Methoden-Byte ab: `0x00` ist gespeichert (keine Komprimierung, nur memcpy), `0x08` ist DEFLATE gemäß RFC 1951 (~99 % der Archive in der Praxis), `0x0C` ist BZIP2, `0x0E` ist LZMA und `0x5D` ist das ältere PPMd. Dieses Werkzeug verwendet JSZip (oder fflate für höheren Durchsatz – fflates `unzipSync` dekodiert ein typisches 10-MB-DEFLATE-Archiv in Zehntelsekunden, mehrfach schneller als JSZip). Nach der Dekomprimierung wird der CRC-32 der rohen Bytes neu berechnet und mit dem Wert im Zentralverzeichnis verglichen; eine Nichtübereinstimmung zeigt Korruption oder Manipulation an. Zwei Sicherheitsaspekte sind für jeden Extraktionscodepfad relevant. Der erste ist die Zip-Slip-Schwachstelle (Snyk, 2018): Ein bösartiges Archiv kann Einträge mit Pfadaversalsequenzen wie `../../etc/passwd` enthalten, und ein naiver Extraktor, der den Eintragsnamen mit einem Zielverzeichnis zusammenfügt, schreibt außerhalb der vorgesehenen Sandbox. Die Lösung besteht darin, den zusammengefügten Pfad mit `path.resolve()` zu normalisieren und zu verifizieren, dass er noch mit dem Zielverzeichnis beginnt, bevor geschrieben wird. Dieses Werkzeug bietet jeden Eintrag als individuellen Browser-Download über `URL.createObjectURL(new Blob([bytes]))` an, und der Browser sandkastet das Ziel, sodass Verzeichnistrawersal nicht aus dem Downloads-Ordner des Benutzers ausbrechen kann, aber dasselbe Archiv wäre bei einem serverseitigen Extraktor ausnutzbar. Zweitens werden verschlüsselte Archive nicht behandelt: Das traditionelle ZipCrypto ist eine 32-Bit-Stromchiffre, die mit einem Known-Plaintext-Angriff von drei Bytes trivial gebrochen werden kann, und das moderne WinZip AES-256 (PKWARE APPNOTE 7.0) erfordert das AE-2-Extra-Feld mit HMAC-SHA1-Authentifizierung – keiner der beiden Pfade ist hier implementiert. Archive über 4 GiB basieren auf den Extra-Feldern der ZIP64-Erweiterung für 64-Bit-Größen und -Offsets, die der Parser lesen muss, anstatt die 32-Bit-Zentralverzeichnis-Felder zu verwenden.
- Parse-Reihenfolge: Rückwärts vom Dateiende nach EOCD-Signatur `0x06054b50` scannen (maximal 22 + 65535 Bytes vom Ende) → zum Zentralverzeichnis seeken → zu jedem Lokalen Datei-Header seeken.
- Komprimierungsmethoden: `0x00` gespeichert, `0x08` DEFLATE (RFC 1951, ~99 % der Archive), `0x0C` BZIP2, `0x0E` LZMA, `0x5D` PPMd.
- Integrität: CRC-32 mit Polynom `0xEDB88320` (umgekehrtes IEEE 802.3) wird für extrahierte Bytes neu berechnet und mit dem Wert im Zentralverzeichnis verglichen.
- Zip Slip (Snyk 2018): Einträge mit `../`-Pfadaversal können außerhalb des Extraktionsverzeichnisses schreiben; Lösung durch Normalisierung und Validierung des aufgelösten Pfads vor dem Schreiben.
- Browser-Implementierung: `File.arrayBuffer()` → JSZip / fflate `unzipSync()` → pro Eintrag `URL.createObjectURL(new Blob([bytes]))` für Downloads, kein Server-Roundtrip.
- Verschlüsselung wird nicht behandelt: ZipCrypto ist in 3 Known-Plaintext-Bytes gebrochen; WinZip AES-256 (APPNOTE 7.0, AE-2-Extra-Feld mit HMAC-SHA1) ist hier nicht implementiert.
- ZIP64 (APPNOTE 4.5+) erweitert 32-Bit-Größen-/Offset-Felder auf 64-Bit über Extra-Felder; erforderlich für Archive oder einzelne Einträge über 4 GiB (2³² − 1 Bytes).
Beispiele
Archivinhalt anzeigen
Die Dateiliste eines ZIP-Archivs direkt im Browser ansehen, ohne Entpackungssoftware zu installierenEinzelne Dateien extrahieren
Nur die benötigte Datei aus dem Archiv herunterladen, ohne alles zu entpackenBatch-Extraktion
Alle Dateien aus dem Archiv mit einem Klick extrahieren und herunterladenFAQ
Wird das ZIP zum Entpacken hochgeladen?
Nein. Die Seite liest das ZIP lokal über die FileReader API und dekomprimiert die Einträge im Browser mit JSZip. Dateien verlassen dein Gerät nicht. Du kannst das im Network-Tab beim Entpacken bestätigen.
Welche ZIP-Varianten werden unterstützt?
Standard-ZIP-Dateien mit DEFLATE-Komprimierung (die häufigste Variante). Stored-Einträge (unkomprimiert) funktionieren ebenfalls. ZIP64 (für Archive über 4 GB) wird in den meisten Builds unterstützt. Verschlüsselte Einträge (passwortgeschützt) sowie 7Z, RAR und TAR werden nicht unterstützt - dafür brauchst du ein dediziertes Tool.
Kann ich passwortgeschützte ZIPs entpacken?
In der Regel nein. JSZip kommt weder mit ZipCrypto- noch mit AES-verschlüsselten Einträgen klar. Entschlüssle sie zunächst auf dem Desktop mit 7-Zip oder WinRAR und packe sie neu, falls du die Struktur hier prüfen möchtest.
Was ist, wenn das ZIP chinesische oder japanische Dateinamen enthält?
Die Seite liest Dateinamen standardmäßig als UTF-8. Alte, unter Windows erstellte ZIPs speichern Dateinamen mitunter in GBK (Chinesisch) oder Shift_JIS (Japanisch), ohne das UTF-8-Flag zu setzen - die erscheinen dann verstümmelt. Erzeuge das ZIP mit einem UTF-8-fähigen Tool neu, oder nimm 7-Zip auf dem Desktop mit der passenden Codepage-Einstellung.
Wo liegt die Dateigrößenbegrenzung?
Beim Browser-Speicher. Moderne Desktops kommen mit ZIPs ab 1 GB klar; mobilen Browsern geht ab ein paar Hundert MB der Speicher aus. Für sehr große Archive nimm ein Desktop-Tool, das von der Festplatte streamt.
Kann ich Dateiinhalte ohne Entpacken vorab ansehen?
Bei Textdateien ja - klicke einen beliebigen Eintrag an und die Seite zeigt seinen Inhalt. Bilder werden als Thumbnails vorab angezeigt. Binäre Einträge (Executables, verschachtelte ZIPs) zeigen nur Metadaten; lade sie zum Inspizieren herunter.
Werden Dotfiles und versteckte Dateien entpackt?
Ja. ZIP kennt kein 'hidden'-Attribut - alle Einträge sind sichtbar. Dateinamen, die mit einem Punkt beginnen (.gitignore, .env), werden ganz normal entpackt; behandle sie wie gewöhnliche Dateien.