UltKit

JSON kódolása Base64-be

Alakítsa a JSON fájlt egyetlen sor Base64 szöveggé, amely ép marad környezeti változókban, YAML mezőkben és API-kérések törzsében, ahol az idézőjelek, kapcsos zárójelek és sortörések gondot okoznának. Dekódolás után pontosan ugyanazokat a bájtokat kapja vissza.

Adatkonvertáló

vagy húzza ide a(z) CSV, TSV, TXT … fájlok fájlokat ·

Legfeljebb 95 MB fájlonként· Legfeljebb 20 fájl· Törlés 30 perc után

Kimenet

A fájlokat szervereinken dolgozzuk fel, és 30 perc után töröljük.

Az eszköz használata

  1. 1

    Töltse fel a JSON fájlt

    Adjon hozzá egy .json, .jsonl vagy .ndjson fájlt, például szolgáltatásfiók-kulcsot vagy konfigurációs fájlt. Egy köteg legfeljebb 20 fájlt tartalmazhat, fájlonként legfeljebb 95 MB-osat.

  2. 2

    Döntsön az előtagról

    Alapértelmezés szerint sima Base64 van beállítva. A Data URI előtag opciót a Speciális beállítások alatt csak akkor kapcsolja be, ha a szöveg olyan HTML- vagy CSS-attribútumba kerül, amely data: URL-t vár.

  3. 3

    Kódolja és másolja ki

    Nyomja meg a Base64 szöveggé alakítása gombot, töltse le az eredményt, majd illessze be a karakterláncot a titkoskezelőbe, a manifestbe vagy a kérés törzsébe.

A JSON Base64-be kódolása nem változtatja meg az adatokat, csak egyszerű betűkké és számjegyekké csomagolja át őket, hogy olyan helyeken is átjussanak, ahol a kapcsos zárójelek, idézőjelek és sortörések tönkremennének.

Miért érdemes a JSON fájlt Base64-be kódolni

A tipikus eset egy hitelesítőadat-fájl. A felhőszolgáltató JSON fájlként adja át a szolgáltatásfiók-kulcsot, a CI-rendszer, a tárhely vezérlőpultja vagy a konténerplatform viszont csak egysoros szövegmezőt kínál a titkokhoz. A nyers JSON beillesztése az első sortörésnél vagy az első escape nélküli idézőjelnél elromlik. Base64-be kódolva ugyanaz a kulcs egyetlen megszakítatlan karakterlánc, amelyet az alkalmazás induláskor visszafejt.

A Base64 az e-mailig nyúlik vissza: az 1996-ban az RFC 2045-ben definiált MIME azért használta, hogy a mellékletek átjussanak a csak 7 bites szöveget szállító levelezőszervereken. Az ábécét később, 2006-ban az RFC 4648 önállóan szabványosította. Az ára a méret, mert minden 3 bájtból 4 karakter lesz. Képekhez és más bináris fájlokhoz a Kép Base64-be ugyanezt a kódolást végzi, megfelelő data URI-val. Ha a fogadó eszköz Base64 mező helyett YAML-t olvas, elég lehet a JSON YAML-be.

Példa: JSON kódolása Base64-be

A {"env":"prod","retries":3} tömör JSON és Base64 kódolása
{"env":"prod","retries":3}

eyJlbnYiOiJwcm9kIiwicmV0cmllcyI6M30=

Hol várnak Base64-be kódolt JSON-t

Helyek, amelyek a JSON-t csak Base64-ként fogadják el
SzervezetKövetelményForrás
Kubernetes SecretekA data alatti minden értéknek Base64-nek kell lennie; a JSON kulcsfájlt előbb kódolni kell, mielőtt becsatolja.kubernetes.io
GitHub REST APIA fájltartalom létrehozására vagy frissítésére szolgáló végpont a fájlt, így a .json fájlt is, Base64-ként várja a content mezőben.docs.github.com
JSON Web Tokens (RFC 7519)A JSON fejlécet és a claimeket külön-külön base64url kódolja, majd pontokkal fűzi össze.—
E-mail mellékletek (MIME)A .json mellékletet Base64 átviteli kódolással küldik, hogy átjusson a csak szöveget kezelő levelezőszervereken.—
Base64Base 64 kódolás · RFC 4648 szerinti kódolás
Tetszőleges bájtok leírása 64 biztonságos karakterrel: A–Z, a–z, 0–9, + és /, kiegészítésként =. Minden 3 bemeneti bájtból 4 kimeneti karakter lesz, így a szöveg nagyjából harmadával hosszabb a fájlnál. Visszafordítható és nem használ kulcsot, ezért átviteli formátum, nem biztonsági megoldás.

Tudnivalók a JSON és a Base64 formátumról

JSON

JavaScript Object Notation

A JSON egy könnyű, szöveges formátum strukturált adatokhoz, amelyet Douglas Crockford tett népszerűvé a 2000-es évek elején, és RFC 8259 és ECMA-404 néven szabványosítottak. Objektumokat, tömböket, szövegeket, számokat, logikai értékeket és null értéket ír le egyszerű, olvasható szintaxissal. Ez az alapértelmezett formátum a webes API-khoz, a konfigurációs fájlokhoz és az alkalmazások közti adatcseréhez szinte minden programozási nyelvben. Nincs benne beépített megjegyzés, dátum vagy séma, és a nagy, mélyen egymásba ágyazott fájlok megjelenítő nélkül nehezen olvashatók.

Tömörítés
–
Átlátszóság
–
Animáció
–
Bevezetés éve
2001 · Douglas Crockford
JSON átalakító

BASE64

Base64 kódolású szöveg

A Base64 az RFC 4648-ban meghatározott kódolás, amely bármilyen bináris adatot 64 biztonságos szöveges karakterből álló sztringgé alakít. Használják képek HTML-be és CSS-be ágyazására data URI-ként, fájlok e-mailhez csatolására, valamint bináris adatok küldésére JSON-ban vagy XML-ben. A kódolás teljesen visszafordítható, de az adatot nagyjából 33%-kal megnöveli. A Base64 nem titkosítás, és nem nyújt biztonságot; bárki dekódolhatja.

Tömörítés
Veszteségmentes
Átlátszóság
–
Animáció
–
Bevezetés éve
–
BASE64 átalakító

A JSON-t akkor kódolják Base64-be, ha egy strukturált adatot egyetlen olyan szövegmezőben kell átvinni, amely nem fogad nyers idézőjeleket és sortöréseket: ilyen egy CI-titok, egy Kubernetes manifest, egy API content mezője vagy egy fejlécérték.

Kérdések a JSON Base64-be kódolásáról

Titkosítva van a Base64-be kódolt JSON?

Nem. A Base64 kódolás, amelyet bárki egyetlen paranccsal visszafejthet. Maga a Kubernetes dokumentáció is figyelmeztet, hogy a Secretek alapértelmezés szerint csak Base64 kódolással, titkosítatlanul tárolódnak, ezért a kódolt karakterláncot pontosan úgy védje, mint az eredeti kulcsot.

Base64 vagy base64url kell tokenhez vagy URL-hez?

A szabványos Base64, ahogyan itt is szerepel, a + és / karaktereket használja, és =-lel egészít ki. A JWT-k és az URL-paraméterek az RFC 4648 szerinti base64url ábécét használják, amely a - és _ jelet veszi át, és általában elhagyja a kiegészítést. Ha a célrendszer base64url-t vár, cserélje ki ezt a három karaktert.

Érdemes minifikálni a JSON-t kódolás előtt?

Általában igen. A szóközök, a behúzás és a sortörések ugyanolyan bájtok, mint a többi, és minden 3 bájtból 4 karakter lesz. Ha előbb tömöríti a tagolt konfigurációt, például a jq -c paranccsal, a kódolt karakterlánc is ennek megfelelően rövidebb lesz.

Hogyan dekódolhatom vissza a szöveget JSON-ná?

macOS-en vagy Linuxon futtassa a base64 --decode parancsot, PowerShellben használja a [Convert]::FromBase64String metódust, böngészőben pedig az atob eredményét vezesse át egy TextDecoderen, hogy az UTF-8 karakterek helyesen álljanak vissza.

Miért jelez a kubectl érvénytelen base64 adatot?

A Secret manifestben a data alatti értéknek egy sorban írt, érvényes Base64-nek kell lennie. A hiba általában azt jelenti, hogy beillesztéskor sortörés került a szövegbe, vagy sima JSON került a data alá. A sima értékek a stringData alá valók, azokat a Kubernetes kódolja Ön helyett.

Megváltoztat bármit a kódolás a JSON-on belül?

Nem. A Base64 veszteség nélkül képezi le a bájtokat szöveggé és vissza, ezért a kulcsok, az értékek, az ékezetes karakterek, sőt a fájl elején lévő bájtsorrend-jelölő is pontosan visszaáll a dekódoláskor.