UltKit

Převod JSON do Base64

Převeďte soubor JSON na jediný řádek textu Base64, který bez potíží projde proměnnými prostředí, poli YAML i těly požadavků API, kde by uvozovky, složené závorky a zalomení řádků působily problémy. Dekódováním získáte zpět přesně tytéž bajty.

Převodník dat

nebo sem přetáhněte soubory CSV, TSV, TXT … ·

Max. 95 MB na soubor· Až 20 souborů· Smazáno po 30 minutách

Výstup

Soubory se zpracovávají na našich serverech a po 30 minutách se smažou.

Jak nástroj používat

  1. 1

    Nahrajte soubor JSON

    Přidejte soubor .json, .jsonl nebo .ndjson, například klíč servisního účtu nebo konfiguraci. Až 20 souborů v jedné dávce, každý do 95 MB.

  2. 2

    Zvolte prefix

    Je nastaven běžný Base64. Možnost Předpona Data URI v části Pokročilá nastavení zapněte jen tehdy, když text půjde do atributu HTML nebo CSS, který očekává URL typu data:.

  3. 3

    Zakódujte a zkopírujte

    Stiskněte Převést na Base64 text, stáhněte výsledek a vložte řetězec do úložiště tajných údajů, manifestu nebo těla požadavku.

Kódování JSON do Base64 data nemění, jen je přebalí do prostých písmen a číslic, aby prošla místy, kde by složené závorky, uvozovky a zalomení řádků poškodila.

Proč kódovat soubor JSON do Base64

Typickým případem je soubor s přihlašovacími údaji. Poskytovatel cloudu vám dá klíč servisního účtu jako soubor JSON, ale váš systém CI, hostingový panel nebo kontejnerová platforma nabízí pro tajné údaje jen jednořádkové textové pole. Vložený surový JSON se rozbije na prvním zalomení řádku nebo na první neescapované uvozovce. Zakódovaný do Base64 je stejný klíč jeden nepřerušený řetězec, který aplikace při spuštění dekóduje.

Samotné Base64 pochází z e-mailu: MIME, definované v RFC 2045 v roce 1996, ho používalo, aby přílohy prošly poštovními servery, které přenášely jen 7bitový text. Samostatně byla abeceda standardizována později v RFC 4648 v roce 2006. Cenou je velikost, protože každé 3 bajty se změní na 4 znaky. Pro obrázky a další binární soubory provádí stejné kódování s odpovídajícím data URI Obrázek do Base64. Pokud cílový nástroj čte YAML a ne pole Base64, může stačit JSON do YAML.

Příklad převodu JSON do Base64

Kompaktní JSON {"env":"prod","retries":3} a jeho kódování Base64
{"env":"prod","retries":3}

eyJlbnYiOiJwcm9kIiwicmV0cmllcyI6M30=

Kde se očekává JSON zakódovaný v Base64

Místa, která přijímají JSON jen jako Base64
OrganizacePožadavekZdroj
Kubernetes SecretsKaždá hodnota pod data musí být v Base64; soubor s klíčem JSON připojíte tak, že ho nejprve zakódujete.kubernetes.io
GitHub REST APIKoncový bod pro vytvoření nebo aktualizaci obsahu souboru očekává soubor, včetně souboru .json, jako Base64 v content.docs.github.com
JSON Web Tokens (RFC 7519)Hlavička JSON a claims se kódují zvlášť pomocí base64url a spojují se tečkami.—
E-mailové přílohy (MIME)Příloha .json se odesílá s přenosovým kódováním Base64, aby prošla poštovními servery určenými jen pro text.—
Base64Kódování Base 64 · Kódování RFC 4648
Způsob zápisu libovolných bajtů pomocí 64 bezpečných znaků: A–Z, a–z, 0–9, + a /, přičemž = slouží k doplnění. Každá skupina 3 vstupních bajtů se změní na 4 výstupní znaky, takže text je asi o třetinu delší než soubor. Je vratné a nemá žádný klíč, takže jde o přenosový formát, ne o bezpečnostní opatření.

Fakta o formátech JSON a Base64

JSON

JavaScript Object Notation

JSON je odlehčený textový formát pro strukturovaná data, který na počátku 21. století zpopularizoval Douglas Crockford a který je standardizován jako RFC 8259 a ECMA-404. Pomocí jednoduché čitelné syntaxe popisuje objekty, pole, řetězce, čísla, booleovské hodnoty a null. Je výchozím formátem webových API, konfiguračních souborů a výměny dat mezi aplikacemi téměř v každém programovacím jazyce. Nemá vestavěné komentáře, data ani schémata a rozsáhlé vnořené soubory se bez prohlížeče špatně čtou.

Komprese
–
Průhlednost
–
Animace
–
Představeno
2001 · Douglas Crockford
Převodník JSON

BASE64

Text zakódovaný v Base64

Base64 je kódování definované v RFC 4648, které převádí libovolná binární data na řetězec 64 bezpečných textových znaků. Používá se k vkládání obrázků do HTML a CSS jako data URI, k přikládání souborů k e-mailu a k odesílání binárních dat v JSON nebo XML. Kódování je plně vratné, ale data zvětší asi o 33 %. Base64 není šifrování a žádnou ochranu nenabízí; dekódovat ho může kdokoli.

Komprese
Bezztrátová
Průhlednost
–
Animace
–
Představeno
–
Převodník BASE64

JSON se kóduje do Base64, když musí strukturovaná data projít jediným textovým polem, které nepřijme holé uvozovky a zalomení řádků: tajný údaj v CI, manifest Kubernetes, pole content v API nebo hodnota hlavičky.

Otázky k převodu JSON do Base64

Je JSON zakódovaný do Base64 šifrovaný?

Ne. Base64 je kódování a každý ho dekóduje jedním příkazem. Dokumentace Kubernetes sama upozorňuje, že Secrets jsou ve výchozím nastavení pouze zakódované v Base64 a uložené nešifrovaně, proto kódovaný řetězec chraňte stejně jako původní klíč.

Potřebuji pro token nebo URL Base64, nebo base64url?

Standardní Base64, jaké se zde vytváří, používá + a / a doplňuje znakem =. JWT a parametry v URL používají abecedu base64url podle RFC 4648, která místo nich dosazuje - a _ a obvykle vynechává doplnění. Pokud cíl očekává base64url, tyto tři znaky nahraďte.

Mám JSON před kódováním minifikovat?

Obvykle ano. Mezery, odsazení a zalomení řádků jsou bajty jako každé jiné a každé 3 bajty se změní na 4 znaky výstupu. Když nejprve zhutníte formátovanou konfiguraci, například pomocí jq -c, zkrátí se i kódovaný řetězec.

Jak řetězec dekóduji zpět do JSON?

V macOS nebo Linuxu spusťte base64 --decode, v PowerShellu použijte [Convert]::FromBase64String a v prohlížeči předejte výsledek atob přes TextDecoder, aby se znaky UTF-8 vrátily správně.

Proč kubectl hlásí illegal base64 data?

Hodnota pod data v manifestu Secret musí být platné Base64 na jednom řádku. Chyba obvykle znamená, že se při vkládání dostalo dovnitř zalomení řádku nebo že pod data byl vložen prostý JSON. Prosté hodnoty patří pod stringData, které Kubernetes zakóduje za vás.

Změní kódování něco uvnitř mého JSON?

Ne. Base64 převádí bajty na text a zpět beze ztrát, takže klíče, hodnoty, znaky s diakritikou i značka pořadí bajtů na začátku souboru se při dekódování obnoví přesně.