UltKit

Kodirnik JSON v Base64

Datoteko JSON spremenite v eno samo vrstico besedila Base64, ki brez težav prestane okoljske spremenljivke, polja YAML in telesa zahtev API, kjer bi narekovaji, zavite oklepaje in prelomi vrstic povzročali težave. Z dekodiranjem dobite natanko enake bajte.

Pretvornik podatkov

ali spustite datoteke CSV, TSV, TXT … sem ·

Največ 95 MB na datoteko· Do 20 datotek· Izbrisano po 30 minutah

Izhod

Datoteke se obdelajo na naših strežnikih in izbrišejo po 30 minutah.

Kako uporabljati to orodje

  1. 1

    Naložite datoteko JSON

    Dodajte datoteko .json, .jsonl ali .ndjson, na primer ključ storitvenega računa ali konfiguracijo. Do 20 datotek na serijo, vsaka do 95 MB.

  2. 2

    Izberite predpono

    Nastavljen je navaden Base64. Vklopite Predpona Data URI v razdelku Napredne nastavitve samo, če besedilo vstavljate v atribut HTML ali CSS, ki pričakuje URL data:.

  3. 3

    Kodirajte in kopirajte

    Pritisnite Pretvori v Base64 besedilo, prenesite rezultat in niz prilepite v shrambo skrivnosti, manifest ali telo zahteve.

Kodiranje JSON v Base64 podatkov ne spremeni; le preoblikuje jih v navadne črke in števke, da lahko potujejo skozi kraje, kjer bi se zavite oklepaje, narekovaji in prelomi vrstic pokvarili.

Zakaj kodirati datoteko JSON v Base64

Tipičen primer je datoteka z poverilnicami. Ponudnik oblaka vam izda ključ storitvenega računa kot datoteko JSON, vaš sistem CI, nadzorna plošča gostovanja ali vsebniška platforma pa za skrivnosti ponuja le enovrstično besedilno polje. Surov JSON se pokvari že pri prvem prelomu vrstice ali prvem neubeganem narekovaju. Kodiran v Base64 je isti ključ en sam neprekinjen niz, ki ga aplikacija ob zagonu dekodira.

Base64 izvira iz e-pošte: MIME, opredeljen v RFC 2045 leta 1996, ga je uporabljal, da so priponke lahko potovale prek poštnih strežnikov, ki so prenašali le 7-bitno besedilo. Abecedo so pozneje samostojno standardizirali v RFC 4648 leta 2006. Cena je velikost, saj vsak 3 bajti postanejo 4 znaki. Za slike in druge binarne datoteke Slika v Base64 opravi enako kodiranje z ustreznim data URI. Če prejemno orodje bere YAML in ne polja Base64, vam morda zadošča JSON v YAML.

Primer pretvorbe JSON v Base64

Strnjen JSON {"env":"prod","retries":3} in njegovo kodiranje Base64
{"env":"prod","retries":3}

eyJlbnYiOiJwcm9kIiwicmV0cmllcyI6M30=

Kje se pričakuje JSON, kodiran v Base64

Mesta, ki sprejemajo JSON le kot Base64
OrganizacijaZahtevaVir
Kubernetes SecretsVsaka vrednost pod data mora biti Base64; datoteko s ključem JSON vključite tako, da jo najprej kodirate.kubernetes.io
GitHub REST APIKončna točka za ustvarjanje ali posodobitev vsebine datoteke pričakuje datoteko, tudi .json, kot Base64 v content.docs.github.com
JSON Web Tokens (RFC 7519)Glava JSON in trditve se kodirajo vsaka posebej z base64url in združijo s pikami.—
E-poštne priponke (MIME)Priponka .json se pošlje z Base64 transportnim kodiranjem, da gre skozi poštne strežnike, ki podpirajo samo besedilo.—
Base64kodiranje Base 64 · kodiranje RFC 4648
Način zapisa poljubnih bajtov s 64 varnimi znaki: A–Z, a–z, 0–9, + in /, z = kot dopolnilom. Vsaka skupina 3 vhodnih bajtov postane 4 izhodni znaki, zato je besedilo približno tretjino daljše od datoteke. Je povratno in brez ključa, zato je transportni format, ne varnostni ukrep.

Dejstva o formatih JSON in Base64

JSON

JavaScript Object Notation

JSON je lahek besedilni format za strukturirane podatke, ki ga je v zgodnjih letih 2000 populariziral Douglas Crockford, standardizirana pa sta ga RFC 8259 in ECMA-404. Objekte, tabele, nize, števila, logične vrednosti in null predstavlja s preprosto, berljivo sintakso. Je privzeti format za spletne API-je, konfiguracijske datoteke in izmenjavo podatkov med aplikacijami v skoraj vseh programskih jezikih. Nima vgrajenih komentarjev, datumov ali shem, velikih gnezdenih datotek pa brez pregledovalnika ni lahko brati.

Stiskanje
–
Prosojnost
–
Animacija
–
Uvedeno
2001 · Douglas Crockford
Pretvornik JSON

BASE64

Besedilo, kodirano z Base64

Base64 je kodiranje, določeno v RFC 4648, ki poljubne binarne podatke pretvori v niz 64 varnih besedilnih znakov. Uporablja se za vdelavo slik v HTML in CSS kot data URI, za pripenjanje datotek e-pošti in za pošiljanje binarnih podatkov v JSON ali XML. Kodiranje je popolnoma obrnljivo, vendar podatke poveča za približno 33 %. Base64 ni šifriranje in ne nudi varnosti; dekodira ga lahko vsak.

Stiskanje
Brez izgube kakovosti
Prosojnost
–
Animacija
–
Uvedeno
–
Pretvornik BASE64

JSON se kodira v Base64, kadar mora strukturirana vsebina potovati znotraj enega nizovnega polja, ki ne prenese surovih narekovajev in prelomov vrstic: skrivnost v CI, manifest Kubernetes, polje content v API-ju ali vrednost glave.

Vprašanja o pretvorbi JSON v Base64

Ali je JSON, kodiran v Base64, šifriran?

Ne. Base64 je kodiranje in ga lahko vsak dekodira z enim ukazom. Dokumentacija Kubernetes sama opozarja, da so Secrets privzeto le kodirani z Base64 in shranjeni nešifrirano, zato kodirani niz zaščitite enako kot izvirni ključ.

Ali za žeton ali URL potrebujem Base64 ali base64url?

Standardni Base64, kot je zapisan tu, uporablja + in / ter dopolnjuje z =. JWT-ji in parametri URL uporabljajo abecedo base64url iz RFC 4648, ki namesto njih uporabi - in _ ter običajno izpusti dopolnilo. Če ciljni sistem pričakuje base64url, zamenjajte te tri znake.

Ali naj JSON pred kodiranjem pomanjšam (minify)?

Običajno da. Presledki, zamiki in prelomi vrstic so bajti kot vsi drugi, vsak 3 bajti pa postanejo 4 znaki izhoda. Če lepo oblikovano konfiguracijo najprej strnete, na primer z jq -c, se kodirani niz ustrezno skrajša.

Kako niz dekodiram nazaj v JSON?

V macOS ali Linuxu zaženite base64 --decode, v PowerShellu uporabite [Convert]::FromBase64String, v brskalniku pa rezultat funkcije atob pošljite skozi TextDecoder, da se znaki UTF-8 pravilno vrnejo.

Zakaj kubectl javlja napako illegal base64 data?

Vrednost pod data v manifestu Secret mora biti veljaven Base64 v eni vrstici. Napaka običajno pomeni, da se je pri lepljenju vrinil prelom vrstice ali da je bil pod data vstavljen navaden JSON. Navadne vrednosti sodijo pod stringData, ki jih Kubernetes kodira sam.

Ali kodiranje kar koli spremeni v mojem JSON-u?

Ne. Base64 bajte brez izgub preslika v besedilo in nazaj, zato se ključi, vrednosti, naglašeni znaki in celo oznaka vrstnega reda bajtov na začetku datoteke ob dekodiranju natančno obnovijo.