ToolActToolAct

Распаковка ZIP

Загрузка ZIP-архива, предпросмотр и извлечение файлов с возможностью отдельного скачивания или массовой распаковки

Загрузка ZIP-файла

Перетащите ZIP-файл сюда или нажмите для выбора

Поддерживаются архивные файлы формата .zip

Что такое распаковка ZIP?

Распаковка ZIP открывает архив и восстанавливает файлы, сохраненные внутри. Она полезна, когда вы получили сжатый пакет, хотите посмотреть содержимое перед скачиванием всего набора, нужен только один файл или нужно проверить имена и размеры перед доверием к архиву. Для обычных файлов ZIP является форматом без потерь, и извлеченное содержимое должно совпадать с исходным. Но распаковка не делает неизвестные файлы безопасными. Архив может содержать вводящие в заблуждение имена, неожиданные папки, данные, сильно увеличивающиеся после распаковки, или исполняемые файлы, которые нельзя открывать без проверки. Этот браузерный инструмент читает архив локально и позволяет скачать выбранные файлы, но не заменяет проверку безопасности подозрительных архивов.

Как использовать

Как использовать

  1. Перетащите ZIP-файл в область загрузки или нажмите кнопку «Выбрать ZIP-файл»
  2. Просмотрите список файлов и сведения о них в архиве
  3. Нажмите «Скачать» для нужного файла, чтобы извлечь его
  4. Нажмите «Извлечь всё», чтобы скачать все файлы одним ZIP-архивом

Безопасность при извлечении

  • Перед скачиванием извлечённых файлов просмотрите их список, особенно если архив получен из ненадёжного источника.
  • Будьте осторожны с исполняемыми файлами, вложенными архивами и подозрительными именами.

Применение

Изучите содержимое ZIP перед распаковкойПеретащите .zip-файл, и страница построит отсортированное дерево папок с иконками типов файлов, раскрывающимися папками и рассчитанными размерами. Вы быстро увидите, содержит ли архив ожидаемые документы, ресурсы или код, прежде чем скачивать отдельные файлы. Ридер читает запись End of Central Directory в конце файла для нахождения центрального каталога, поэтому случайно обрезанный или дополненный .zip с валидным маркером EOCD всё равно покажет объявленные записи, даже если некоторые локальные заголовки повреждены.
Скачивайте только нужные файлыВыберите один файл, целую папку, несколько вложенных элементов или всё содержимое архива, затем скачайте выбранные файлы прямо из браузера. Логика выбора раскрывает папки в содержащиеся файлы, поэтому можно извлечь несколько нужных элементов из большого архива.
Используйте браузерную распаковку для лёгкой проверки архивовJSZip читает архив локально, и каждый извлечённый файл скачивается как отдельная загрузка браузера. Пакетная распаковка не воссоздаёт исходное дерево папок на диске и не создаёт новый ZIP, поэтому лучше всего подходит для просмотра, сортировки и извлечения небольших файлов, а не для полного восстановления резервной копии.
Обнаружьте подозрительное имя файла до распаковкиПросмотрите список файлов на наличие двойных расширений вроде report.pdf.exe, скрытых системных файлов или путей, пытающихся выйти за пределы директории с помощью сегментов .. Относитесь к неизвестным архивам как к ненадёжным, даже если источник выглядит знакомым, и проверяйте всё исполняемое антивирусом перед открытием. Файлы с установленным битом 11 общего флага хранятся в UTF-8, поэтому имена с не-ASCII символами декодируются корректно, а отсутствие флага может привести к мусорным символам, что само по себе является признаком подделанного или перепакованного архива.
Извлеките один конфиг из резервного ZIP без скачивания остальногоПросмотрите дерево папок, выберите только нужный config.json или сертификат и скачайте только эту запись. Это быстрый способ восстановить один потерянный файл из многогигабайтной резервной копии, не тратя трафик на ненужные части. Архивы свыше 4 ГБ используют расширение ZIP64, и инструмент читает ZIP64-поля для несжатого размера, сжатого размера и смещения локального заголовка, поэтому извлечение одного файла работает и для резервных копий, превышающих классический 32-битный лимит.

Технический принцип

Чтение ZIP-архива выполняется в порядке, обратном записи. Браузер получает файл как `ArrayBuffer` через File API (`file.arrayBuffer()`), и ридер сканирует файл с конца в поисках сигнатуры End of Central Directory `0x06054b50` (PK\x05\x06). EOCD занимает не более 22 байт плюс необязательный комментарий до 65 535 байт, поэтому окно сканирования ограничено. EOCD указывает на смещение и размер центрального каталога, который содержит один File Header (`0x02014b50`) для каждой записи. Каждый File Header включает сжатый и несжатый размеры, CRC-32, метод сжатия, имя файла и смещение соответствующего Local File Header (`0x04034b50`). Ридер может затем перейти непосредственно к любой отдельной записи, не разбирая предыдущие — именно поэтому извлечение одного файла из многогигабайтной резервной копии выполняется быстро. Распаковка зависит от байта метода: `0x00` — хранение (без сжатия, просто memcpy), `0x08` — DEFLATE согласно RFC 1951 (~99% архивов в реальности), `0x0C` — BZIP2, `0x0E` — LZMA, `0x5D` — устаревший PPMd. Этот инструмент использует JSZip (или fflate для более высокой производительности — `unzipSync` от fflate декодирует типичный 10 МБ DEFLATE-архив за десятки миллисекунд, в несколько раз быстрее JSZip). После распаковки CRC-32 сырых байт пересчитывается и сравнивается со значением из центрального каталога; несовпадение указывает на повреждение или подделку. Два аспекта безопасности важны для любого кода извлечения. Первый — уязвимость Zip Slip (Snyk, 2018): вредоносный архив может содержать записи с последовательностями обхода путей вроде `../../etc/passwd`, и простой экстрактор, объединяющий имя записи с целевой директорией, запишет данные за пределы предполагаемой песочницы. Исправление — нормализовать объединённый путь с помощью `path.resolve()` и проверить, что он по-прежнему начинается с целевой директории перед записью. Этот инструмент предлагает каждую запись как отдельную загрузку браузера через `URL.createObjectURL(new Blob([bytes]))`, и браузер изолирует место назначения, поэтому обход директорий не может выйти за пределы папки загрузок пользователя, но тот же архив на серверном экстракторе был бы уязвим. Во-вторых, зашифрованные архивы не поддерживаются: традиционный ZipCrypto — это 32-битный потоковый шифр, который легко взламывается атакой с известным открытым текстом за три байта, а современный WinZip AES-256 (PKWARE APPNOTE 7.0) требует дополнительного поля AE-2 с аутентификацией HMAC-SHA1 — ни один из вариантов здесь не реализован. Архивы свыше 4 ГБ опираются на расширение ZIP64 с дополнительными полями для 64-битных размеров и смещений, которые парсер должен читать вместо 32-битных полей центрального каталога.

  • Порядок разбора: сканирование с конца файла в поисках сигнатуры EOCD `0x06054b50` (максимум 22 + 65535 байт от конца) → переход к центральному каталогу → переход к каждому Local File Header.
  • Методы сжатия: `0x00` хранение, `0x08` DEFLATE (RFC 1951, ~99% архивов), `0x0C` BZIP2, `0x0E` LZMA, `0x5D` PPMd.
  • Целостность: CRC-32 с полиномом `0xEDB88320` (инверсия IEEE 802.3) пересчитывается для извлечённых байт и сравнивается со значением из центрального каталога.
  • Zip Slip (Snyk 2018): записи с обходом пути `../` могут записать данные за пределы директории извлечения; исправляется нормализацией и проверкой результирующего пути перед записью.
  • Реализация в браузере: `File.arrayBuffer()` → JSZip / fflate `unzipSync()` → для каждой записи `URL.createObjectURL(new Blob([bytes]))` для загрузки, без обращения к серверу.
  • Шифрование не поддерживается: ZipCrypto взламывается за 3 байта известного открытого текста; WinZip AES-256 (APPNOTE 7.0, дополнительное поле AE-2 с HMAC-SHA1) не реализован.
  • ZIP64 (APPNOTE 4.5+) расширяет 32-битные поля размера/смещения до 64-битных через дополнительные поля; требуется для архивов или отдельных записей свыше 4 ГБ (2³² − 1 байт).

Примеры

Просмотр содержимого архива

Просматривайте список файлов внутри ZIP-архива прямо в браузере без установки программ для распаковки

Извлечение отдельных файлов

Скачивайте только нужный файл из архива, не извлекая всё содержимое

Пакетное извлечение

Извлекайте и скачивайте все файлы из архива одним кликом

Часто задаваемые вопросы

Загружается ли ZIP на сервер для распаковки?

Нет. Страница читает ZIP локально через FileReader API и распаковывает записи прямо в браузере с помощью JSZip. Файлы не покидают ваше устройство. Это можно проверить во вкладке Network во время распаковки.

Какие варианты ZIP поддерживаются?

Стандартные ZIP-файлы со сжатием DEFLATE (самый распространённый вариант). Записи без сжатия (Stored) тоже работают. ZIP64 (для архивов больше 4 ГБ) поддерживается в большинстве сборок. Зашифрованные записи (защищённые паролем), а также 7Z, RAR и TAR не поддерживаются — для них используйте профильный инструмент.

Можно ли распаковать ZIP с паролем?

Как правило, нет. JSZip не работает с записями, зашифрованными ZipCrypto или AES. Сначала расшифруйте архив через 7-Zip или WinRAR на десктопе, а затем при необходимости снова упакуйте и загрузите сюда, чтобы посмотреть структуру.

Что если в ZIP китайские или японские имена файлов?

По умолчанию страница читает имена файлов как UTF-8. Старые ZIP, созданные в Windows, могут хранить имена в GBK (китайский) или Shift_JIS (японский) без флага UTF-8 — они отобразятся как кракозябры. Пересоздайте архив инструментом с поддержкой UTF-8 или используйте 7-Zip на десктопе с правильной кодовой страницей.

Каков предел размера файла?

Память браузера. Современные десктопы тянут ZIP в 1+ ГБ; мобильные браузеры заканчивают память на нескольких сотнях мегабайт. Для очень больших архивов используйте десктопный инструмент, который стримит данные с диска.

Можно ли посмотреть содержимое файла без распаковки?

Да, для текстовых файлов — кликните по записи, и страница покажет её содержимое. Изображения отображаются миниатюрами. Для бинарных записей (исполняемых файлов, вложенных ZIP) показываются только метаданные; для просмотра скачайте.

Извлекаются ли скрытые файлы и dotfiles?

Да. В ZIP нет понятия атрибута «скрытый» — все записи видны. Имена, начинающиеся с точки (.gitignore, .env), извлекаются как обычно; работайте с ними как с обычными файлами.

Связанные инструменты

Упаковка файлов

Бесплатный онлайн-инструмент для упаковки файлов в ZIP-архив. Добавляйте файлы перетаскиванием и скачивайте готовый архив локально в браузере.

Инструмент проверки хеша файла

Бесплатный онлайн-калькулятор хэша файла: MD5, SHA-1, SHA-256, SHA-512 и другие. Вычисляйте контрольную сумму и проверяйте целостность файлов.

Инструмент проверки MD5 файла

Бесплатный онлайн-инструмент для вычисления MD5 файла. Проверяйте целостность файлов, обнаруживайте изменения и убеждайтесь, что файлы не повреждены.

Инструмент сжатия изображений

Бесплатный онлайн-компрессор изображений для JPEG, PNG и WebP. Настраивайте качество и размеры, а локальная обработка в браузере защищает приватность.

Кодировщик/Декодировщик Base64

Онлайн-инструмент для кодирования и декодирования Base64 с поддержкой UTF-8 текста, кириллицы и изображений. Мгновенное кодирование без установки программ.

Конвертер Word в PDF

Бесплатный онлайн-конвертер Word в PDF. Поддерживает форматы .docx и .doc с конвертацией в один клик, сохранением форматирования и автоматической оптимизацией размера PDF. Файлы удаляются после конвертации.