UltKit
Зображення11
PDF13
Документи й дані7
Відео6
Аудіо4
Інші інструменти22

Кодування JSON у Base64

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

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

або перетягніть Файли CSV, TSV, TXT … сюди ·

До 95 МБ на файл· До 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

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 перетворює байти на текст і назад без втрат, тому ключі, значення, літери з діакритиками і навіть маркер порядку байтів на початку файлу після декодування відновлюються точно.