UltKit

Kódovanie JSON do Base64

Premeňte JSON súbor na jeden riadok textu v Base64, ktorý bez problémov prejde premennými prostredia, poľami YAML aj telom API požiadaviek, kde by úvodzovky, zátvorky a zalomenia riadkov spôsobovali chyby. Po dekódovaní dostanete presne tie isté bajty.

Prevodník dát

alebo sem presuňte súbory CSV, TSV, TXT … ·

Max. 95 MB na súbor· Až 20 súborov· Odstránenie po 30 minútach

Výstup

Súbory sa spracúvajú na našich serveroch a po 30 minútach sa odstránia.

Ako používať tento nástroj

  1. 1

    Nahrajte JSON súbor

    Pridajte súbor .json, .jsonl alebo .ndjson, napríklad kľúč servisného účtu alebo konfiguráciu. Až 20 súborov v jednej dávke, každý do 95 MB.

  2. 2

    Zvoľte predponu

    Nastavený je čistý Base64. Možnosť Predpona Data URI v sekcii Rozšírené nastavenia zapnite, len ak text vkladáte do atribútu HTML alebo CSS, ktorý očakáva URL typu data:.

  3. 3

    Zakódujte a skopírujte

    Stlačte Previesť na Base64 text, stiahnite výsledok a vložte reťazec do úložiska tajomstiev, manifestu alebo tela požiadavky.

Zakódovanie JSON do Base64 dáta nemení; prebalí ich na obyčajné písmená a číslice, aby prešli miestami, ktoré by poškodili zložené zátvorky, úvodzovky a zalomenia riadkov.

Prečo kódovať JSON súbor do Base64

Typickým prípadom je súbor s prihlasovacími údajmi. Poskytovateľ cloudu vám dá kľúč servisného účtu ako súbor JSON, no váš systém CI, panel hostingu alebo kontajnerová platforma ponúka pre tajomstvá len jednoriadkové textové pole. Vloženie surového JSON zlyhá na prvom zalomení riadka alebo prvej neošetrenej úvodzovke. Po zakódovaní do Base64 je ten istý kľúč jediný súvislý reťazec, ktorý aplikácia pri štarte dekóduje.

Samotný Base64 pochádza z e-mailu: MIME, definovaný v RFC 2045 v roku 1996, ho použil, aby prílohy prešli poštovými servermi, ktoré prenášali len 7-bitový text. Abeceda bola neskôr samostatne štandardizovaná v RFC 4648 v roku 2006. Cenou je veľkosť, keďže každé 3 bajty sa menia na 4 znaky. Pre obrázky a iné binárne súbory robí rovnaké kódovanie so zodpovedajúcim data URI nástroj Obrázok do Base64. Ak prijímajúci nástroj číta YAML a nie pole Base64, môže stačiť JSON do YAML.

Príklad prevodu JSON do Base64

Kompaktný JSON {"env":"prod","retries":3} a jeho kódovanie Base64
{"env":"prod","retries":3}

eyJlbnYiOiJwcm9kIiwicmV0cmllcyI6M30=

Kde sa očakáva JSON v Base64

Miesta, ktoré prijímajú JSON len v Base64
OrganizáciaPožiadavkaZdroj
Kubernetes SecretsKaždá hodnota pod data musí byť v Base64; súbor s kľúčom JSON pripojíte tak, že ho najprv zakódujete.kubernetes.io
GitHub REST APIKoncový bod na vytvorenie alebo aktualizáciu obsahu súboru očakáva súbor, vrátane súboru .json, ako Base64 v content.docs.github.com
JSON Web Tokens (RFC 7519)Hlavička JSON a tvrdenia sa kódujú každé zvlášť pomocou base64url a spájajú sa bodkami.—
Prílohy e-mailov (MIME)Príloha .json sa odosiela s kódovaním prenosu Base64, aby prešla poštovými servermi len pre text.—
Base64Kódovanie Base 64 · Kódovanie RFC 4648
Spôsob zápisu ľubovoľných bajtov pomocou 64 bezpečných znakov: A–Z, a–z, 0–9, + a /, pričom = slúži na doplnenie. Každá skupina 3 vstupných bajtov sa zmení na 4 výstupné znaky, takže text je asi o tretinu dlhší ako súbor. Je to vratné a nepoužíva kľúč, preto ide o prenosový formát, nie o bezpečnostné opatrenie.

Fakty o formátoch JSON a Base64

JSON

JavaScript Object Notation

JSON je ľahký textový formát pre štruktúrované dáta, ktorý na začiatku 21. storočia spopularizoval Douglas Crockford a ktorý je normalizovaný ako RFC 8259 a ECMA-404. Pomocou jednoduchej, čitateľnej syntaxe vyjadruje objekty, polia, reťazce, čísla, booleovské hodnoty a null. Je predvoleným formátom webových API, konfiguračných súborov a výmeny dát medzi aplikáciami takmer v každom programovacom jazyku. Nemá vstavané komentáre, dátumy ani schémy a veľké vnorené súbory sa bez prehliadača ťažko čítajú.

Kompresia
–
Priehľadnosť
–
Animácia
–
Rok vzniku
2001 · Douglas Crockford
Konvertor JSON

BASE64

Text kódovaný v Base64

Base64 je kódovanie definované v RFC 4648, ktoré premení akékoľvek binárne dáta na reťazec 64 bezpečných textových znakov. Používa sa na vkladanie obrázkov do HTML a CSS ako data URI, na prikladanie súborov k e-mailu a na odosielanie binárnych dát v JSON alebo XML. Kódovanie je plne spätne vratné, ale dáta zväčší približne o 33 %. Base64 nie je šifrovanie a neposkytuje žiadnu bezpečnosť; dekódovať ho môže ktokoľvek.

Kompresia
Bezstratová
Priehľadnosť
–
Animácia
–
Rok vzniku
–
Konvertor BASE64

JSON sa kóduje do Base64, keď sa štruktúrovaný obsah musí zmestiť do jedného reťazcového poľa, ktoré neznesie surové úvodzovky a zalomenia riadkov: tajomstvo v CI, manifest Kubernetes, pole content v API alebo hodnota hlavičky.

Otázky o prevode JSON do Base64

Je JSON zakódovaný v Base64 zašifrovaný?

Nie. Base64 je kódovanie a ktokoľvek ho dokáže dekódovať jediným príkazom. Dokumentácia Kubernetes sama upozorňuje, že Secrets sú predvolene iba zakódované v Base64 a uložené bez šifrovania, preto zakódovaný reťazec chráňte rovnako ako pôvodný kľúč.

Potrebujem pre token alebo URL Base64, alebo base64url?

Štandardný Base64, aký tu vzniká, používa + a / a dopĺňa znakom =. JWT a parametre v URL používajú abecedu base64url podľa RFC 4648, ktorá namiesto nich používa - a _ a zvyčajne vynecháva doplnenie. Ak cieľ očakáva base64url, tieto tri znaky nahraďte.

Mám JSON pred kódovaním minifikovať?

Zvyčajne áno. Medzery, odsadenie a zalomenia riadkov sú bajty ako každé iné a každé 3 bajty sa menia na 4 znaky výstupu. Ak najprv zhustíte formátovanú konfiguráciu, napríklad pomocou jq -c, zakódovaný reťazec sa zodpovedajúcim spôsobom skráti.

Ako dekódujem reťazec späť na JSON?

V macOS alebo Linuxe spustite base64 --decode, v PowerShelli použite [Convert]::FromBase64String a v prehliadači prepustite výsledok funkcie atob cez TextDecoder, aby sa znaky UTF-8 vrátili správne.

Prečo kubectl hlási illegal base64 data?

Hodnota pod data v manifeste Secret musí byť platný Base64 na jednom riadku. Chyba zvyčajne znamená, že sa pri vkladaní dostalo dovnútra zalomenie riadka, alebo že pod data bol vložený čistý JSON. Čisté hodnoty patria pod stringData, ktoré Kubernetes zakóduje za vás.

Zmení kódovanie niečo v mojom JSON?

Nie. Base64 prevádza bajty na text a späť bez straty, takže kľúče, hodnoty, znaky s diakritikou aj značka poradia bajtov (BOM) na začiatku súboru sa pri dekódovaní obnovia presne.