UltKit

JSON til Base64-koder

Gør en JSON-fil til én enkelt linje Base64-tekst, der klarer sig i miljøvariabler, YAML-felter og API-forespørgsler, hvor anførselstegn, klammer og linjeskift ellers ville give problemer. Når strengen afkodes, får De præcis de samme bytes tilbage.

Datakonverter

eller slip CSV, TSV, TXT …-filer her ·

Maks. 95 MB pr. fil· Op til 20 filer· Slettes efter 30 minutter

Output

Filer behandles på vores servere og slettes efter 30 minutter.

Sådan bruger du værktøjet

  1. 1

    Upload JSON-filen

    Tilføj en .json-, .jsonl- eller .ndjson-fil, f.eks. en servicekontonøgle eller en konfigurationsfil. Op til 20 filer pr. batch, 95 MB hver.

  2. 2

    Vælg præfiks

    Almindelig Base64 er valgt. Slå Data-URI-præfiks til under Avancerede indstillinger, kun hvis teksten skal bruges i en HTML- eller CSS-attribut, der forventer en data:-URL.

  3. 3

    Kod og kopiér

    Tryk på Konvertér til Base64-tekst, download resultatet, og indsæt strengen i dit secret store, din manifestfil eller din request body.

Når du koder JSON som Base64, ændres data ikke; de pakkes om til almindelige bogstaver og cifre, så de kan passere steder, der ellers ville ødelægge klammer, citationstegn og linjeskift.

Hvorfor kode en JSON-fil som Base64

Det typiske tilfælde er en legitimationsfil. En cloududbyder giver dig en servicekontonøgle som JSON-fil, og dit CI-system, din hostingportal eller din containerplatform tilbyder kun et enkeltlinjet tekstfelt til secrets. Rå JSON går i stykker ved det første linjeskift eller det første citationstegn uden escape. Kodet som Base64 er den samme nøgle én sammenhængende streng, som programmet afkoder ved opstart.

Base64 selv stammer fra e-mail: MIME, defineret i RFC 2045 i 1996, brugte det, så vedhæftede filer kunne passere mailservere, der kun håndterede 7-bit tekst. Alfabetet blev senere standardiseret for sig i RFC 4648 i 2006. Prisen er størrelsen, da hver 3 bytes bliver til 4 tegn. Til billeder og andre binære filer udfører Billede til Base64 den samme kodning med en tilhørende data-URI. Hvis det modtagende værktøj læser YAML frem for et Base64-felt, er JSON til YAML måske alt, du behøver.

Eksempel på JSON til Base64

Kompakt JSON {"env":"prod","retries":3} og dens Base64-kodning
{"env":"prod","retries":3}

eyJlbnYiOiJwcm9kIiwicmV0cmllcyI6M30=

Hvor Base64-kodet JSON forventes

Steder, der kun tager JSON som Base64
OrganisationKravKilde
Kubernetes SecretsHver værdi under data skal være Base64; en JSON-nøglefil monteres ved at kode den først.kubernetes.io
GitHub REST APIEndpointet til at oprette eller opdatere filindhold forventer filen, også en .json-fil, som Base64 i content.docs.github.com
JSON Web Tokens (RFC 7519)JSON-headeren og claims kodes hver for sig med base64url og samles med punktummer.—
E-mailvedhæftninger (MIME)En .json-vedhæftning sendes med Base64-transferkodning, så den kan passere mailservere, der kun håndterer tekst.—
Base64Base 64-kodning · RFC 4648-kodning
En måde at skrive vilkårlige bytes med 64 sikre tegn: A–Z, a–z, 0–9, + og /, med = som udfyldning. Hver gruppe på 3 inputbytes bliver til 4 outputtegn, så teksten er cirka en tredjedel længere end filen. Kodningen er reversibel og har ingen nøgle, så den er et transportformat og ikke en sikkerhedsforanstaltning.

Fakta om JSON- og Base64-formatet

JSON

JavaScript Object Notation

JSON er et let tekstformat til strukturerede data, populariseret af Douglas Crockford i begyndelsen af 2000'erne og standardiseret som RFC 8259 og ECMA-404. Det repræsenterer objekter, arrays, strenge, tal, booleanske værdier og null med enkel, læsbar syntaks. Det er standardformatet til web-API'er, konfigurationsfiler og dataudveksling mellem apps i næsten alle programmeringssprog. Det har ingen indbyggede kommentarer, datoer eller skemaer, og store indlejrede filer er svære at læse uden en fremviser.

Komprimering
–
Gennemsigtighed
–
Animation
–
Introduceret
2001 · Douglas Crockford
JSON-konverter

BASE64

Base64-kodet tekst

Base64 er en kodning, defineret i RFC 4648, der omdanner vilkårlige binære data til en streng af 64 sikre tekstegn. Den bruges til at indlejre billeder i HTML og CSS som data-URI'er, til at vedhæfte filer til e-mail og til at sende binære data i JSON eller XML. Kodningen kan fuldt ud føres tilbage, men gør data cirka 33 % større. Base64 er ikke kryptering og giver ingen sikkerhed; alle kan afkode det.

Komprimering
Uden tab
Gennemsigtighed
–
Animation
–
Introduceret
–
BASE64-konverter

JSON kodes som Base64, når en struktureret payload skal ligge i ét enkelt strengfelt, der ikke kan indeholde rå citationstegn og linjeskift: en CI-secret, et Kubernetes-manifest, en API's content-felt eller en header-værdi.

Spørgsmål om JSON til Base64

Er Base64-kodet JSON krypteret?

Nej. Base64 er en kodning, og alle kan afkode den med én kommando. Kubernetes' egen dokumentation advarer om, at Secrets som standard kun er Base64-kodede og gemmes ukrypteret, så beskyt den kodede streng på samme måde som den oprindelige nøgle.

Skal jeg bruge Base64 eller base64url til et token eller en URL?

Standard-Base64, som her, bruger + og / og udfylder med =. JWT'er og URL-parametre bruger base64url-alfabetet fra RFC 4648, som bruger - og _ i stedet og som regel udelader udfyldningen. Erstat de tre tegn, hvis modtageren forventer base64url.

Bør jeg minificere JSON, før den kodes?

Som regel ja. Mellemrum, indrykning og linjeskift er bytes som alle andre, og hver 3 bytes bliver til 4 tegn i outputtet. Hvis du først komprimerer en pænt formateret konfiguration, f.eks. med jq -c, bliver den kodede streng tilsvarende kortere.

Hvordan afkoder jeg strengen tilbage til JSON?

På macOS eller Linux kan du køre base64 --decode, i PowerShell bruges [Convert]::FromBase64String, og i en browser sender du resultatet af atob gennem en TextDecoder, så UTF-8-tegn bliver gengivet korrekt.

Hvorfor melder kubectl om ugyldige base64-data?

Værdien under data i et Secret-manifest skal være gyldig Base64 på én linje. Fejlen skyldes som regel, at et linjeskift er sneget sig ind ved indsættelsen, eller at almindelig JSON er lagt under data. Almindelige værdier hører under stringData, som Kubernetes koder for dig.

Ændrer kodningen noget i min JSON?

Nej. Base64 omsætter bytes til tekst og tilbage uden tab, så nøgler, værdier, tegn med accent og selv en byte order mark i starten af filen genskabes præcist ved afkodning.