Skip to content
DocsAll
教程

Принцип кодирования Base64: почему объем растет на 33%

Timi Tian · Опубликовано 7 июля 2026 · Обновлено 12 июля 2026
Base64КодированиеКодирование данных

Что такое Base64

Base64 — это способ кодирования бинарных данных в чистый текст. Он использует 64 печатных символа (A-Z, a-z, 0-9, +, /) для представления любых бинарных данных, позволяя передавать их через каналы, поддерживающие только текст (например, JSON, XML, URL, электронную почту).

Принцип кодирования

Таблица символов

Base64 использует 64 символа: заглавные A-Z (26), строчные a-z (26), цифры 0-9 (10), знак плюса + и косую черту /, всего 64. Знак равенства = применяется как заполнитель в конце.

Процесс кодирования

  1. Разбейте входные данные на группы по 3 байта (24 бита)
  2. Разделите 24 бита на 4 группы по 6 бит
  3. Каждые 6 бит соответствуют одному символу Base64 (2 в степени 6 = 64, ровно 64 символа)
  4. Если до 3 байт не хватает, дополните знаком =

Пример

3 байта на входе (24 бита) → 4 символа Base64. Поэтому число байт после кодирования составляет 4/3 от исходного, то есть около 133%, рост на 33%.

Почему объем увеличивается на 33%

По сути, 1 байт может представлять 256 значений (8 бит), а каждый символ Base64 представляет лишь 64 значения (6 бит). Чтобы передать тот же объем информации, 6-битное кодирование использует в 8/6 = 4/3 раза больше символов, чем 8-битное. Поэтому объем после кодирования Base64 составляет 4/3 от исходного — рост на 33%.

Это неотъемлемая плата Base64 — пространство обменивается на «текстовую передаваемость».

Пример кодирования

Текст "Man" (3 байта ASCII):

  • M = 77 = 01001101
  • a = 97 = 01100001
  • n = 110 = 01101110
  • Склеиваем в 24 бита: 01001101 01100001 01101110
  • Делим на 4 группы по 6 бит: 010011 010110 000101 101110
  • Соответствующие символы Base64: T W F u
  • Результат кодирования: TWFu

3 байта превращаются в 4 байта, ровно 4/3.

Варианты Base64

Стандартный Base64

Таблица символов содержит + и /, в конце заполнение знаком =. Подходит для общего применения.

Base64, безопасный для URL

  • и / имеют особый смысл в URL; они заменяются на - и _. Подходит для передачи в URL.

Base64URL

URL-безопасный вариант, часто применяется в JWT (JSON Web Token).

Base64 против Base32 против Hex

Base64

  • Набор из 64 символов
  • Рост на 33% после кодирования
  • Символы включают заглавные и строчные буквы, цифры и +/; чувствителен к регистру

Base32

  • Набор из 32 символов (A-Z, 2-7)
  • Рост на 60% после кодирования
  • Не чувствителен к регистру, избегает легко путаемых символов; подходит для ручного ввода

Hex (шестнадцатеричный)

  • Набор из 16 символов (0-9, a-f)
  • Рост на 100% после кодирования (каждый байт — два символа)
  • Самый простой и совместимый, но объем удваивается

Объем: Hex > Base32 > Base64. Если важна компактность — выбирайте Base64; если важны совместимость и простота — Hex.

Base64 — это шифрование?

Нет. Base64 — это кодирование, а не шифрование. Любой может декодировать его, защиты ключом нет. Использовать Base64 как шифрование — серьезное заблуждение: он лишь «маскирует» данные под бессмысленный набор, а декодирование возвращает исходный текст.

Для конфиденциальных данных используйте алгоритмы шифрования вроде AES; Base64 предназначен только для транспортного кодирования.

Случаи применения

Передача данных

Бинарные данные передаются через текстовые каналы (JSON, XML, URL, почта) — кодируются в Base64 как текст.

Встраивание небольших изображений

Небольшие картинки кодируются в Base64 и встраиваются inline в HTML/CSS, сокращая число HTTP-запросов (см. применение изображений в Base64).

JWT

JSON Web Token использует Base64URL для кодирования header и payload.

Data URI

Протокол data URL использует Base64 для встраивания ресурсов.

Basic Auth

HTTP Basic-аутентификация кодирует имя пользователя и пароль в Base64 (учтите: это не шифрование; используйте вместе с HTTPS).

Кодирование и декодирование в DocsAll

Инструмент кодирования и декодирования Base64:

  1. Введите текст или строку Base64
  2. Выберите кодирование или декодирование
  3. Преобразуйте одним нажатием
  4. Скопируйте результат

Обработка в браузере, данные не покидают устройство.

Частые ловушки

Принимать за шифрование

Base64 — не шифрование; не полагайтесь только на Base64 для «защиты» конфиденциальных данных.

Рост объема после кодирования

Большие файлы, закодированные в Base64, разбухают на 33%, увеличивая расходы на передачу и хранение. Если доступен бинарный канал, не используйте Base64.

Путаница с набором символов

Стандартный Base64 содержит +/; для размещения в URL их нужно экранировать или использовать URL-безопасный вариант. Смешивание вариантов ведет к ошибке декодирования.

Завершающий = нельзя опускать

Символ-заполнитель = — часть кодировки; его пропуск может вызвать ошибку декодирования. Некоторые реализации допускают пропуск, но это нестандартно.

Итог

Base64 — это кодирование, а не шифрование: представляет бинарные данные 64 символами, а рост объема на 33% — неотъемлемая плата. Назначение — позволить бинарным данным проходить через текстовые каналы. В URL используйте URL-безопасный вариант. Инструмент кодирования/декодирования DocsAll работает в браузере, данные не передаются вовне.

T
Timi Tian 创始人 / 全栈工程师

DocsAll 创始人,10 年全栈开发经验,专注浏览器端文档处理技术与隐私保护架构。前新加坡科技公司技术负责人。