Skip to main content
CheckTown
Инструменты разработчика

Кодирование и декодирование Base64: полное руководство для разработчика

Опубликовано 5 мин чтения
В этой статье

Что такое Base64?

Base64 — это схема кодирования, которая преобразует двоичные данные в строку ASCII-символов. Для представления любых двоичных данных используется 64 безопасных символа (A-Z, a-z, 0-9, +, /), что позволяет безопасно передавать их через текстовые протоколы: HTTP-заголовки, электронную почту (MIME) и JSON.

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

Как работает кодирование Base64

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

  • Группировка байт — входные байты объединяются по 3 и преобразуются в 4 выходных символа
  • Таблица символов — каждая 6-битная группа соответствует одному из 64 печатаемых ASCII-символов
  • Выравнивание — символы = добавляются для обеспечения длины вывода, кратной 4

Попробуйте бесплатно — без регистрации

Кодировать или декодировать Base64 →

Когда использовать Base64

Base64 применяется везде, где двоичные данные нужно встроить в текстовые форматы.

  • Вложения электронной почты — MIME-кодирование использует Base64 для прикрепления двоичных файлов к письмам
  • Data URI — встраивайте изображения прямо в HTML/CSS как data:image/png;base64,... чтобы избежать лишних HTTP-запросов
  • API-аутентификация — учётные данные Basic Auth кодируются в Base64 в HTTP-заголовке Authorization

Частые вопросы

Увеличивает ли Base64 размер данных?

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

В чём разница между стандартным Base64 и URL-безопасным Base64?

Стандартный Base64 использует символы + и /, которые имеют специальное значение в URL. URL-безопасный Base64 (Base64url) заменяет + на - и / на _, что позволяет использовать строки в URL и именах файлов без процентного кодирования. JWT используют именно кодировку Base64url.

Как обрабатывать Base64 с данными, отличными от UTF-8?

Base64 работает с сырыми байтами, а не с текстом. При кодировании двоичных данных, например изображений или зашифрованного содержимого, обращайтесь с ними как с массивом байт, а не со строкой. В JavaScript используйте Uint8Array или Buffer; в Python — объекты bytes, чтобы избежать проблем кодирования с данными, отличными от UTF-8.

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