Кодировщик/декодировщик Base64

Base64 — это схема кодирования двоичных данных в текст, которая представляет двоичные данные с помощью 64 символов ASCII. Широко используется для встраивания двоичных данных в текстовые форматы, такие как JSON, XML и URL. Этот инструмент декодирует Base64, показывая исходное содержимое, и автоматически определяет, является ли результат JSON, XML или другим разбираемым форматом.

Спецификации

Типичные сценарии использования

  • Декодирование Base64-кодированных данных API и вебхуков
  • Просмотр закодированных данных в JWT-токенах
  • Декодирование вложений электронной почты (MIME Base64)
  • Отладка закодированных сообщений об ошибках и стеков вызовов
  • Просмотр закодированных значений конфигурации в переменных окружения

Возможности

  • Декодирование стандартного Base64 в текст UTF-8
  • Поддержка URL-безопасных вариантов Base64 (- и _ вместо + и /)
  • Автоопределение типа декодированного содержимого (JSON, XML и др.)
  • Цепочка к соответствующему парсеру при обнаружении структурированных данных
  • Кодирование текста в Base64
  • Предпросмотр изображений для декодированных двоичных данных
  • Hex-просмотрщик для не-UTF-8 двоичных данных
  • Метка определённого формата (Standard / URL-Safe / Mixed)

Примеры

Закодированный JSON

Попробовать →

Строка Base64, которая декодируется в объект JSON.

eyJuYW1lIjoiRGVjb2RlVGhpcyIsInZlcnNpb24iOiIxLjAuMCJ9

Простой текст

Попробовать →

Base64-кодированное приветственное сообщение (декодируется в "Hello, World!").

SGVsbG8sIFdvcmxkIQ==

Советы

  • Base64 — это кодирование, а не шифрование. Оно не обеспечивает никакой безопасности.
  • Заполняющие символы = в конце могут быть опущены в некоторых реализациях.
  • URL-безопасный Base64 заменяет + на - и / на _, чтобы избежать проблем с URL-кодированием.
  • Base64 увеличивает размер данных приблизительно на 33%.

Описание Кодировщик/декодировщик Base64

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

Процесс кодирования берёт каждые три байта (24 бита) входных данных и делит их на четыре 6-битных группы. Каждое 6-битное значение отображается на один из 64 символов. Когда длина входных данных не кратна трём байтам, заполнение одним или двумя символами = дополняет выход до числа, кратного четырём символам. Это означает, что данные в кодировке Base64 примерно на 33% больше оригинала.

Существуют два основных варианта. Стандартный Base64 использует + и / и применяется в MIME-кодировании электронной почты. URL-безопасный Base64 (base64url) заменяет + на - и / на _, чтобы избежать зарезервированных символов URL. JWT-токены используют URL-безопасный вариант без заполнения. Некоторые реализации опускают завершающие символы заполнения =, так как длина исходных данных может быть определена из длины закодированной строки.

Base64 встречается повсюду в веб-разработке. Data URI встраивают изображения и шрифты в HTML/CSS. JWT-токены — это три сегмента, закодированных в Base64url. SAML-сообщения — это XML, закодированный в Base64. Ответы API могут кодировать двоичное содержимое как Base64 внутри JSON. Важно помнить, что Base64 — это кодирование, а не шифрование: оно не обеспечивает никакой безопасности или конфиденциальности.

Base64 не является формой шифрования и никогда не должен рассматриваться как таковой. Он преобразует данные в другое представление без какого-либо ключа или секрета, и любой может мгновенно декодировать строку Base64. Если конфиденциальные данные закодированы в Base64, они полностью открыты. Для данных, которые необходимо защитить, используйте настоящие алгоритмы шифрования, такие как AES или RSA. Стандартный Base64 использует + и / как символы 62 и 63, тогда как URL-безопасный Base64 (base64url, определённый в RFC 4648, раздел 5) заменяет их на - и _, потому что + и / имеют специальное значение в URL. JWT-токены всегда используют URL-безопасный вариант без заполнения.

Символы заполнения = гарантируют, что длина закодированного вывода всегда кратна 4 символам. Поскольку Base64 кодирует 3 байта в 4 символа, входные данные, длина которых не кратна 3, нуждаются в заполнении: 1 остаточный байт даёт ==, а 2 остаточных байта — =. Некоторые реализации, включая JWT, полностью опускают заполнение, так как декодер может вычислить исходную длину из длины закодированной строки.

Увеличение размера на 33% является неотъемлемым свойством кодирования: каждые 3 байта (24 бита) становятся 4 символами ASCII (32 бита), что даёт фиксированное соотношение расширения 4/3, которое невозможно уменьшить. Если размер критичен, сжимайте данные перед кодированием. Для передачи больших двоичных ресурсов рассмотрите более подходящие механизмы, такие как multipart-загрузка или двоичные фреймы WebSocket, вместо встраивания Base64 в текстовые форматы.

← Вернуться ко всем инструментам