Загрузить файл
  1. base64hub
  2. Инструменты для файлов
  3. ZIP в Base64

ZIP в Base64

Перетащите .zip и скопируйте его одной строкой Base64. Если сначала упаковать текстовые файлы в архив, результат часто получается в разы короче, чем при кодировании файлов по одному.

Бесплатно без регистрации и ограничений Локально ничего не загружается Обновлено 27 окт. 2026 г.
Перетащите файлы сюда, вставьте или выберите их
Ввод –Результат –Размер –

Обработка идёт в браузере. Эта страница не может никуда отправить ваши данные – откуда мы это знаем

Как конвертировать ZIP в Base64

  1. Перетащите файл .zip в поле или выберите его через диалог.
  2. По умолчанию Формат вывода выдаёт Чистый Base64. Выберите JSON, если нужны ещё имя файла, тип и размер, или HTML <a download> для ссылки на скачивание.
  3. Не включайте Перенос по 76, если строка не идёт в тело MIME-письма.
  4. Нажмите Скопировать результат или, для больших архивов, Сохранить как .txt.

Сначала архив, потом кодирование

Base64 добавляет примерно треть к тому, что ему дают. Сжатие уменьшает текст, JSON, CSV, HTML и логи ещё до этого, поэтому порядок важен. Небольшой тест с JSON-файлом на 219 398 байт, HTML-страницей и таблицей стилей:

СпособСимволов к отправке
Один только JSON-файл в Base64292 532
Все три файла в ZIP (19 149 байт), затем Base6425 532

Картинки, видео, MP3 и готовые архивы уже сжаты и почти не уменьшаются, но упаковка в ZIP всё равно превращает много файлов в одно поле. Если текстовый файл всего один, проще взять gzip; см. Gzip и Base64.

Где используют ZIP в Base64

  • API деплоя и автоматизации. Некоторые сервисы, которые запускают код или хостят сайты, принимают весь пакет как ZIP в Base64 внутри JSON-запроса.
  • CI и хранилища секретов. Папку с сертификатами или конфигами можно запаковать и хранить как один секрет в Base64, а в пайплайне восстановить через base64 -d.
  • Массовая выгрузка и вложения. Набор отчётов или счетов уходит одним запросом, без отдельного поля на каждый файл.

Сборка ZIP в коде

Python может создать архив в памяти и закодировать его без временного файла:

import base64, io, zipfile
from pathlib import Path

buf = io.BytesIO()
with zipfile.ZipFile(buf, "w", zipfile.ZIP_DEFLATED) as z:
    for path in Path("site").rglob("*"):
        if path.is_file():
            z.write(path, path.relative_to("site"))

package = base64.b64encode(buf.getvalue()).decode("ascii")

ZIP_DEFLATED важен: режим по умолчанию ZIP_STORED вообще не сжимает. О потоковой обработке и окончаниях строк написано в статье Base64 в Python.

Проверка ZIP в Base64

Base64 начинается сЧто это значит
UEsDBBQAZIP, первой записи которого для распаковки нужна версия 2.0; обычный случай для сжатых записей
UEsDBAoAпервой записи нужна только версия 1.0; некоторые программы так пишут несжатые записи
UEsFBgпустой архив, внутри ничего нет

Если строка начинается с UEsFBg, архив создан без файлов; так часто бывает при неверном пути в скрипте сборки. Base64 в ZIP декодирует строку и показывает список файлов внутри: так быстрее всего убедиться, что в архиве лежит то, что вы ожидаете.

Вопросы и ответы

Почему DOCX, XLSX и JAR тоже начинаются с UEsDB?

Это ZIP-архивы с фиксированной внутренней структурой. UEsDB получается при кодировании PK\x03\x04, локального заголовка файла, с которого начинается любой непустой ZIP, какое бы у него ни было расширение.

Сжимает ли Base64 ZIP ещё сильнее?

Нет. Base64 увеличивает любые данные примерно на 33%, а ZIP уже сжат. Выигрыш даёт архивация до кодирования: сжимаемые файлы уменьшаются ещё до того, как добавятся накладные расходы Base64.

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

Да. Base64 видит только байты, поэтому зашифрованный архив кодируется как любой другой. Чтобы распаковать его, получателю всё равно понадобится пароль.