Кодировщик/декодировщик 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 в текстовые форматы.