Base64 кодирование и декодирование онлайн

Кодируйте и декодируйте текст и файлы в Base64. UTF-8, data:URI.

Использовано: раз

Что такое Base64

Base64 — схема кодирования двоичных данных в ASCII-текст. Каждые 3 байта данных кодируются в 4 символа из алфавита: A-Z, a-z, 0-9, +, /. Для выравнивания используется символ =.

Основные применения: вложения email (MIME), data:URI для встраивания изображений в CSS/HTML, передача бинарных данных через JSON API, JWT-токены.

Для работы с регулярными выражениями используйте regex тестер. Для конвертации систем счисления — конвертер.

Как устроен Base64

Base64 разбивает входные данные на блоки по 3 байта (24 бита). Каждый блок делится на четыре группы по 6 бит. Каждая 6-битная группа (значения от 0 до 63) заменяется символом из алфавита: A-Z (0-25), a-z (26-51), 0-9 (52-61), + (62), / (63).

Если длина входных данных не кратна 3 байтам, результат дополняется символами =. Один = означает, что последний блок содержал 2 байта; два == — что только 1 байт. По символам = в конце строки всегда можно определить, сколько «настоящих» данных было закодировано.

Существуют варианты Base64: стандартный (RFC 4648), URL-safe (где + заменён на -, а / на _), и MIME (с переносами строк каждые 76 символов). URL-safe вариант используется в JWT-токенах и URL-параметрах, где + и / имеют специальное значение.

Зачем нужен Base64

Base64 решает одну конкретную задачу: передача двоичных данных через каналы, которые поддерживают только текст. Вот основные сценарии:

Email-вложения (MIME). Протокол SMTP изначально поддерживает только 7-битный ASCII. Чтобы отправить картинку или PDF, почтовый клиент кодирует файл в Base64 и вставляет в тело письма с заголовком Content-Transfer-Encoding: base64.

Data URI. Небольшие изображения можно встроить прямо в CSS или HTML: background: url(data:image/png;base64,iVBOR...). Это экономит HTTP-запрос, но увеличивает размер CSS. Оптимально для иконок до 2-3 КБ.

JWT-токены. JSON Web Token состоит из трёх частей в Base64url: заголовок, полезная нагрузка и подпись. Base64 позволяет передавать структурированные данные через HTTP-заголовок Authorization.

API-аутентификация. HTTP Basic Auth кодирует login:password в Base64. Это не защита — просто способ передать учётные данные в ASCII-совместимом виде.

Хранение бинарных данных в JSON. JSON не поддерживает двоичные типы. Если вам нужно передать файл через JSON API, Base64 — стандартный подход. Для форматирования такого JSON используйте JSON форматтер.

Base64 увеличивает размер

Каждые 3 байта данных превращаются в 4 символа Base64. Это даёт overhead примерно 33%. Файл размером 300 КБ после кодирования займёт около 400 КБ.

Почему это допустимо? Потому что Base64 применяется там, где альтернатива хуже. Отправить двоичный файл через email без кодирования невозможно. Встроить картинку в HTML напрямую — тоже. Overhead в 33% — приемлемая плата за совместимость.

Но для больших файлов Base64 неэффективен. Загрузку фото лучше делать через multipart/form-data, а не через Base64 в JSON. Для критичных по размеру сценариев есть Base85 (overhead ~25%) и Base128, но они менее распространены.

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

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

Если вам нужна защита данных, используйте настоящее шифрование: AES-256, RSA, или TLS для передачи по сети. А для создания криптостойких паролей — генератор паролей с использованием crypto.getRandomValues().

Base64 в JWT-токенах тоже не защищает payload. Подпись (третья часть JWT) гарантирует целостность, но не конфиденциальность. Содержимое токена может прочитать кто угодно.

Встроить кодировщик на свой сайт

Скопируйте код:

<iframe src="https://toolru.ru/base64/?embed=1" width="100%" height="450" frameborder="0" title="Base64"></iframe>

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

Base64 — способ кодирования двоичных данных в текстовый формат. Используется для передачи данных в JSON, email, URL, data:URI.

Да, Base64 увеличивает размер на ~33%. 3 байта исходных данных кодируются в 4 символа Base64.

Да. Текст сначала кодируется в UTF-8, затем в Base64. При декодировании UTF-8 восстанавливается корректно.

Да. Перетащите файл в поле ввода — он будет закодирован в Base64 с префиксом data:URI, готовым для вставки в HTML/CSS.

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

Похожие инструменты

Все для разработчиков →