Util.zone

Base64

Кодируйте и декодируйте Base64 с поддержкой Unicode

О Base64 кодировщике и декодере

Онлайн-утилита Util.zone позволяет мгновенно выполнять кодирование и декодирование строк и произвольных данных по стандарту Base64 и URL-Safe Base64 (base64url).

Инструмент полностью поддерживает кодировку UTF-8, корректно обрабатывая русский текст, диакритические символы, иероглифы и эмодзи без искажений и сбоев.

Преимущества инструмента

  • Двунаправленная конвертация: быстрое переключение между кодированием (Encode) и декодированием (Decode).
  • Поддержка URL-Safe варианта: мгновенная трансформация символов + и / в безопасные для веб-адресов - и _.
  • 100% клиентская обработка: конвертация выполняется мгновенно в оперативной памяти вашего браузера без передачи данных через сеть Интернет. Конфиденциальные строки и авторизационные заголовки остаются строго на вашем устройстве.
  • Полная поддержка UTF-8: корректная обработка кириллицы, редких символов и эмодзи без искажения кодировки.

Как пользоваться сервисом

  1. Выберите режим:
    • Кодировать (Encode): для преобразования обычного текста в строку Base64.
    • Декодировать (Decode): для извлечения исходного текста из строки Base64.
  2. Введите текст в верхнее поле ввода.
  3. Настройте параметры (при необходимости включите опцию URL-Safe).
  4. Скопируйте результат в буфер обмена одним нажатием кнопки.

Спецификация и назначение Base64

Base64 — это группа схем кодирования двоичных данных в текстовый формат, состоящий из 64 печатных символов ASCII.

  • Стандарты:
    • RFC 4648: The Base16, Base32, and Base64 Data Encodings (основной действующий стандарт);
    • RFC 2045: MIME Part One: Format of Internet Message Bodies.
  • История появления: Необходимость в Base64 возникла на заре развития интернета при передаче электронной почты по протоколу SMTP. Исторические почтовые серверы и шлюзы были рассчитаны строго на 7-битный диапазон ASCII (коды от 0 до 127) и произвольно удаляли старший 8-й бит, заменяли неотображаемые байты пробелами или искажали переводы строк. Чтобы передавать бинарные файлы (программы, архивы, изображения) через текстовые каналы без искажений, был разработан алгоритм упаковки любых бинарных байтов в гарантированно безопасные печатные символы.

Алгоритм работы: математика Base64

Один байт информации содержит 8 бит, что дает 256 возможных значений (2⁸ = 256). Алфавит Base64 состоит из 64 символов, каждый из которых кодирует ровно 6 бит информации (2⁶ = 64).

Чтобы сбалансировать эти разрядности, алгоритм группирует входные данные блоками по 3 байта (24 бита) и разбивает их на 4 группы по 6 бит:

3 байта × 8 бит = 24 бита = 4 символа × 6 бит

Входные байты:     [ 01001101 ]   [ 01100001 ]   [ 01101110 ]  (3 байта = "Man")
Битовый поток:       010011 010110 000101 101110
6-битные группы:       19     22      5      46
Символы алфавита:       T      W      F       u       → Результат: "TWFu"

Алфавит Base64 (RFC 4648)

Индекс Символ Индекс Символ Индекс Символ Индекс Символ
0–25 A – Z 26–51 a – z 52–61 0 – 9 62 + (в URL: -)
63 / (в URL: _)

Механизм паддинга (Padding =)

Если общий размер входных данных не делится на 3, в конце потока образуется остаток:

  1. Остаток в 1 байт (8 бит):
    • Дополняется нулями справа до 12 бит (2 группы по 6 бит).
    • Кодируется двумя символами Base64.
    • В конец добавляются два знака равенства (==) для завершения 4-символьного блока.
  2. Остаток в 2 байта (16 бит):
    • Дополняется нулями справа до 18 бит (3 группы по 6 бит).
    • Кодируется тремя символами Base64.
    • В конец добавляется один знак равенства (=).
  3. Остаток в 0 байт:
    • Паддинг не требуется.

Разновидности Base64

1. Стандартный Base64 (RFC 4648 §4)

Использует символы + (плюс) и / (слэш) с выравниванием =. Основной стандарт для вложений почты (MIME), протоколов передачи файлов и встроенных ресурсов Data URL.

2. URL-Safe Base64 (base64url, RFC 4648 §5)

В веб-адресах символы + и / имеют специальное значение: / разделяет сегменты пути, а + кодирует пробел в query-строках. В модификации base64url:

  • + заменяется на - (дефис);
  • / заменяется на _ (нижнее подчеркивание);
  • Выравнивающий символ = обычно полностью отбрасывается.

Именно этот стандарт лежит в основе JWT (JSON Web Tokens): заголовок и полезная нагрузка токена кодируются в base64url и соединяются через точку (header.payload.signature).

3. Data URL в веб-разработке

Позволяет встраивать мультимедиа напрямую в HTML/CSS:

.logo {
  background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==');
}

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

⚠️ Критическое правило: Base64 НЕ является шифрованием!

Кодирование Base64 выполняет исключительно функцию форматирования данных для безопасной передачи по символьным каналам. Оно не обеспечивает ни конфиденциальности, ни целостности, ни защиты от подделки. Любой злоумышленник, перехвативший Base64-строку, может восстановить исходное содержимое мгновенно без каких-либо ключей или паролей.

  • Никогда не храните пароли в базе данных в виде Base64. Для паролей необходимо использовать надежные медленные алгоритмы хэширования с солью (Argon2id, bcrypt, scrypt).
  • Не передавайте секретные токены в незашифрованном Base64 по открытым протоколам HTTP без TLS/HTTPS.
  • Внимание к потреблению памяти: кодирование больших файлов (от десятков мегабайт) в Base64 не только увеличивает их объем на 33%, но и нагружает процессор и оперативную память устройства. Для передачи объемных файлов рекомендуется использовать прямую передачу бинарных потоков.

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