UltKit

Koder JSON do Base64

Zamień plik JSON w jedną linię tekstu Base64, która bez problemu trafi do zmiennych środowiskowych, pól YAML i treści żądań API, gdzie cudzysłowy, nawiasy klamrowe i podziały wierszy sprawiałyby kłopoty. Po zdekodowaniu otrzymają Państwo dokładnie te same bajty.

Konwerter danych

lub upuść Pliki CSV, TSV, TXT … tutaj ·

Maks. 95 MB na plik· Do 20 plików· Usuwane po 30 min

Plik wynikowy

Pliki są przetwarzane na naszych serwerach i usuwane po 30 min.

Jak korzystać z narzędzia

  1. 1

    Prześlij plik JSON

    Dodaj plik .json, .jsonl lub .ndjson, na przykład klucz konta usługi albo konfigurację. Do 20 plików w jednej partii, każdy do 95 MB.

  2. 2

    Zdecyduj o prefiksie

    Ustawiony jest zwykły Base64. Włącz Prefiks Data URI w sekcji Ustawienia zaawansowane tylko wtedy, gdy tekst trafi do atrybutu HTML lub CSS oczekującego adresu data:.

  3. 3

    Zakoduj i skopiuj

    Kliknij Konwertuj na Base64 text, pobierz wynik i wklej ciąg do magazynu sekretów, manifestu lub treści żądania.

Kodowanie JSON do Base64 nie zmienia danych; pakuje je na nowo jako zwykłe litery i cyfry, aby mogły przejść tam, gdzie nawiasy klamrowe, cudzysłowy i podziały wierszy zostałyby zniekształcone.

Po co kodować plik JSON w Base64

Typowy przypadek to plik z poświadczeniami. Dostawca chmury daje klucz konta usługi jako plik JSON, a system CI, panel hostingu lub platforma kontenerowa oferuje na sekrety tylko jednowierszowe pole tekstowe. Wklejenie surowego JSON-a psuje się na pierwszym znaku nowego wiersza lub pierwszym nieescapowanym cudzysłowie. Zakodowany w Base64 ten sam klucz to jeden ciągły ciąg, który aplikacja dekoduje przy starcie.

Sam Base64 wywodzi się z poczty: MIME, zdefiniowany w RFC 2045 w 1996 roku, użył go, aby załączniki przechodziły przez serwery pocztowe obsługujące tylko 7-bitowy tekst. Alfabet ustandaryzowano osobno w RFC 4648 w 2006 roku. Kosztem jest rozmiar, bo każde 3 bajty dają 4 znaki. Dla obrazów i innych plików binarnych Obraz do Base64 wykonuje to samo kodowanie z pasującym data URI. Jeśli narzędzie odbierające czyta YAML, a nie pole Base64, wystarczyć może JSON na YAML.

Przykład konwersji JSON do Base64

Zwarty JSON {"env":"prod","retries":3} i jego kodowanie Base64
{"env":"prod","retries":3}

eyJlbnYiOiJwcm9kIiwicmV0cmllcyI6M30=

Gdzie wymagany jest JSON zakodowany w Base64

Miejsca, które przyjmują JSON tylko jako Base64
OrganizacjaWymaganieŹródło
Kubernetes SecretsKażda wartość pod data musi być w Base64; aby zamontować plik klucza JSON, najpierw go zakoduj.kubernetes.io
GitHub REST APIPunkt końcowy tworzenia lub aktualizacji zawartości pliku oczekuje pliku, także .json, jako Base64 w content.docs.github.com
JSON Web Tokens (RFC 7519)Nagłówek JSON i oświadczenia są kodowane osobno w base64url i łączone kropkami.—
Załączniki e-mail (MIME)Załącznik .json jest wysyłany z kodowaniem transferu Base64, aby przeszedł przez serwery pocztowe obsługujące tylko tekst.—
Base64Kodowanie Base 64 · Kodowanie RFC 4648
Sposób zapisu dowolnych bajtów za pomocą 64 bezpiecznych znaków: A–Z, a–z, 0–9, + i /, z = jako dopełnieniem. Każda grupa 3 bajtów wejścia daje 4 znaki wyjścia, więc tekst jest około jedną trzecią dłuższy niż plik. Jest odwracalny i nie ma klucza, więc to format transportu, a nie zabezpieczenie.

Formaty JSON i Base64 w skrócie

JSON

JavaScript Object Notation

JSON to lekki format tekstowy do danych strukturalnych, spopularyzowany przez Douglasa Crockforda na początku lat 2000 i ustandaryzowany jako RFC 8259 oraz ECMA-404. Reprezentuje obiekty, tablice, ciągi znaków, liczby, wartości logiczne i null za pomocą prostej, czytelnej składni. Jest domyślnym formatem API internetowych, plików konfiguracyjnych i wymiany danych między aplikacjami w niemal każdym języku programowania. Nie ma wbudowanych komentarzy, dat ani schematów, a duże zagnieżdżone pliki trudno czytać bez przeglądarki JSON.

Kompresja
–
Przezroczystość
–
Animacja
–
Rok powstania
2001 · Douglas Crockford
Konwerter JSON

BASE64

Tekst zakodowany w Base64

Base64 to kodowanie zdefiniowane w RFC 4648, które zamienia dowolne dane binarne w ciąg 64 bezpiecznych znaków tekstowych. Służy do osadzania obrazów w HTML i CSS jako data URI, dołączania plików do poczty oraz przesyłania danych binarnych w JSON lub XML. Kodowanie jest w pełni odwracalne, ale zwiększa rozmiar danych o około 33%. Base64 nie jest szyfrowaniem i nie zapewnia bezpieczeństwa; każdy może je zdekodować.

Kompresja
Bezstratna
Przezroczystość
–
Animacja
–
Rok powstania
–
Konwerter BASE64

JSON koduje się do Base64, gdy dane strukturalne muszą zmieścić się w jednym polu tekstowym, które nie przyjmuje surowych cudzysłowów i znaków nowego wiersza: sekret CI, manifest Kubernetes, pole content w API lub wartość nagłówka.

Pytania o konwersję JSON do Base64

Czy JSON zakodowany w Base64 jest zaszyfrowany?

Nie. Base64 to kodowanie i każdy może je odkodować jednym poleceniem. Sama dokumentacja Kubernetes ostrzega, że obiekty Secret są domyślnie tylko zakodowane w Base64 i przechowywane bez szyfrowania, więc zakodowany ciąg chroń tak samo jak oryginalny klucz.

Base64 czy base64url — czego potrzebuję do tokenu lub adresu URL?

Standardowy Base64, taki jak tutaj, używa znaków + i / oraz dopełnienia =. Tokeny JWT i parametry URL używają alfabetu base64url z RFC 4648, który zamienia je na - i _ i zwykle pomija dopełnienie. Jeśli miejsce docelowe oczekuje base64url, zamień te trzy znaki.

Czy przed kodowaniem należy zminifikować JSON?

Zwykle tak. Spacje, wcięcia i końce wierszy to bajty jak każde inne, a każde 3 bajty dają 4 znaki wyniku. Wcześniejsze zagęszczenie sformatowanej konfiguracji, na przykład poleceniem jq -c, skraca zakodowany ciąg.

Jak zdekodować ciąg z powrotem do JSON?

W macOS lub Linuksie użyj base64 --decode, w PowerShellu [Convert]::FromBase64String, a w przeglądarce przepuść wynik atob przez TextDecoder, aby znaki UTF-8 wróciły poprawnie.

Dlaczego kubectl zgłasza błąd illegal base64 data?

Wartość pod data w manifeście Secret musi być poprawnym Base64 w jednym wierszu. Błąd zwykle oznacza, że podczas wklejania wkradł się podział wiersza albo pod data wpisano zwykły JSON. Zwykłe wartości należą do stringData, które Kubernetes koduje za Ciebie.

Czy kodowanie zmienia cokolwiek w moim pliku JSON?

Nie. Base64 zamienia bajty na tekst i z powrotem bez strat, więc klucze, wartości, znaki diakrytyczne, a nawet znacznik kolejności bajtów na początku pliku zostają dokładnie odtworzone po dekodowaniu.