UltKit
Изображения11
PDF13
Документы и данные7
Видео6
Аудио4
Другие инструменты22

Кодировать JSON в Base64

Превратите JSON-файл в одну строку Base64, которая без проблем помещается в переменные окружения, поля YAML и тела API-запросов, где кавычки, фигурные скобки и переносы строк мешали бы. При декодировании вы получите точно те же байты.

Конвертер данных

или перетащите сюда файлы CSV, TSV, TXT … ·

Макс. 95 MB на файл· До 20 файлов· Удаляются через 30 минут

Вывод

Файлы обрабатываются на наших серверах и удаляются через 30 минут.

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

  1. 1

    Загрузите JSON-файл

    Добавьте файл .json, .jsonl или .ndjson, например ключ сервисного аккаунта или конфигурацию. До 20 файлов за раз, по 95 MB каждый.

  2. 2

    Решите, нужен ли префикс

    По умолчанию включён обычный Base64. Включите Префикс Data URI в разделе Расширенные настройки только если текст вставляется в атрибут HTML или CSS, который ожидает URL вида data:.

  3. 3

    Закодируйте и скопируйте

    Нажмите Конвертировать в Base64 text, скачайте результат и вставьте строку в хранилище секретов, манифест или тело запроса.

Кодирование JSON в Base64 не меняет данные: они упаковываются в обычные буквы и цифры, чтобы пройти там, где фигурные скобки, кавычки и переводы строк были бы испорчены.

Зачем кодировать JSON-файл в Base64

Типичный случай — файл с учётными данными. Облачный провайдер выдаёт ключ сервисного аккаунта в виде JSON-файла, а ваша CI-система, панель хостинга или контейнерная платформа предлагает для секретов лишь однострочное текстовое поле. Сырой JSON ломается на первом переводе строки или первой неэкранированной кавычке. В виде Base64 тот же ключ — одна сплошная строка, которую приложение декодирует при запуске.

Сам Base64 пришёл из электронной почты: MIME, описанный в RFC 2045 в 1996 году, использовал его, чтобы вложения проходили через почтовые серверы, передававшие только 7-битный текст. Позже алфавит был стандартизирован отдельно в RFC 4648 в 2006 году. Цена — размер: каждые 3 байта становятся 4 символами. Для изображений и других бинарных файлов Изображение в Base64 делает такое же кодирование с готовым data URI. Если принимающий инструмент читает YAML, а не поле Base64, возможно, вам хватит JSON в YAML.

Пример: JSON в Base64

Компактный JSON {"env":"prod","retries":3} и его кодирование в Base64
{"env":"prod","retries":3}

eyJlbnYiOiJwcm9kIiwicmV0cmllcyI6M30=

Где ожидается JSON в кодировке Base64

Где JSON принимается только в Base64
ОрганизацияТребованиеИсточник
Kubernetes SecretsКаждое значение в data должно быть в Base64; чтобы подключить файл ключа JSON, сначала закодируйте его.kubernetes.io
GitHub REST APIКонечная точка создания или обновления содержимого файла ожидает файл, в том числе .json, в виде Base64 в поле content.docs.github.com
JSON Web Tokens (RFC 7519)Заголовок и утверждения JSON кодируются по отдельности в base64url и соединяются точками.—
Вложения электронной почты (MIME)Вложение .json отправляется с передачей в кодировке Base64, чтобы пройти через почтовые серверы, работающие только с текстом.—
Base64кодирование Base 64 · кодирование по RFC 4648
Способ записать любые байты с помощью 64 безопасных символов: A–Z, a–z, 0–9, + и /, а знак = служит дополнением. Каждые 3 входных байта превращаются в 4 символа, поэтому текст примерно на треть длиннее файла. Кодирование обратимо и не использует ключ, поэтому это формат передачи, а не средство защиты.

Факты о форматах JSON и Base64

JSON

Формат JSON (JavaScript Object Notation)

JSON — лёгкий текстовый формат для структурированных данных, который популяризировал Дуглас Крокфорд в начале 2000-х; он стандартизован как RFC 8259 и ECMA-404. Он описывает объекты, массивы, строки, числа, логические значения и null с помощью простого и читаемого синтаксиса. Это формат по умолчанию для веб-API, файлов конфигурации и обмена данными между приложениями практически на любом языке программирования. В нём нет встроенных комментариев, дат и схем, а большие вложенные файлы трудно читать без просмотрщика.

Сжатие
–
Прозрачность
–
Анимация
–
Год появления
2001 · Douglas Crockford
Конвертер JSON

BASE64

Текст в кодировке Base64

Base64 — кодировка, описанная в RFC 4648, которая превращает любые двоичные данные в строку из 64 безопасных текстовых символов. Она используется, чтобы встраивать изображения в HTML и CSS в виде data URI, прикреплять файлы к письмам и передавать двоичные данные в JSON или XML. Кодирование полностью обратимо, но увеличивает объём данных примерно на 33%. Base64 — не шифрование и не даёт никакой защиты: декодировать его может кто угодно.

Сжатие
Без потерь
Прозрачность
–
Анимация
–
Год появления
–
Конвертер BASE64

JSON кодируют в Base64, когда структурированные данные нужно уместить в одно строковое поле, не допускающее сырых кавычек и переводов строк: секрет CI, манифест Kubernetes, поле content в API или значение заголовка.

Вопросы о кодировании JSON в Base64

Зашифрован ли JSON, закодированный в Base64?

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

Что нужно для токена или URL: Base64 или base64url?

Стандартный Base64, как здесь, использует + и / и дополняется знаком =. В JWT и параметрах URL применяется алфавит base64url из RFC 4648: в нём вместо них стоят - и _, а дополнение обычно отбрасывается. Если нужен base64url, замените эти три символа.

Нужно ли минифицировать JSON перед кодированием?

Обычно да. Пробелы, отступы и переводы строк — такие же байты, как и остальные, а каждые 3 байта превращаются в 4 символа. Если сначала сжать форматированную конфигурацию, например командой jq -c, закодированная строка станет короче.

Как декодировать строку обратно в JSON?

В macOS или Linux выполните base64 --decode, в PowerShell используйте [Convert]::FromBase64String, а в браузере передайте результат atob в TextDecoder, чтобы символы UTF-8 восстановились правильно.

Почему kubectl сообщает об ошибке illegal base64 data?

Значение в разделе data манифеста Secret должно быть корректным Base64 в одну строку. Ошибка обычно означает, что при вставке попал перевод строки или под data положили обычный JSON. Обычные значения нужно помещать в stringData, и Kubernetes закодирует их сам.

Меняет ли кодирование что-нибудь внутри JSON?

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