Koder/Dekoder Base64

Base64 to schemat kodowania binarnego na tekst, który reprezentuje dane binarne za pomocą 64 znaków ASCII. Jest powszechnie używany do osadzania danych binarnych w formatach tekstowych, takich jak JSON, XML i URL. To narzędzie dekoduje Base64, aby ujawnić oryginalną zawartość, i automatycznie wykrywa, czy wynik jest w formacie JSON, XML lub innym możliwym do sparsowania.

Specyfikacje

Typowe zastosowania

  • Dekodowanie zakodowanych w Base64 danych z API i webhooków
  • Inspekcja zakodowanych danych w tokenach JWT
  • Dekodowanie załączników e-mail (MIME Base64)
  • Debugowanie zakodowanych komunikatów o błędach i śladów stosu
  • Przeglądanie zakodowanych wartości konfiguracyjnych w zmiennych środowiskowych

Funkcje

  • Dekodowanie standardowego Base64 do tekstu UTF-8
  • Obsługa wariantów Base64 bezpiecznych dla URL (- i _ zamiast + i /)
  • Automatyczne wykrywanie typu zdekodowanej zawartości (JSON, XML itp.)
  • Łańcuchowe przekierowanie do odpowiedniego parsera po wykryciu danych strukturalnych
  • Kodowanie tekstu do Base64
  • Podgląd obrazu dla zdekodowanych binarnych danych graficznych
  • Przeglądarka hex dla danych binarnych niezgodnych z UTF-8
  • Znacznik wykrytego formatu (Standard / URL-Safe / Mieszany)

Przyklady

Zakodowany JSON

Wypróbuj →

Ciąg Base64, który dekoduje się do obiektu JSON.

eyJuYW1lIjoiRGVjb2RlVGhpcyIsInZlcnNpb24iOiIxLjAuMCJ9

Prosty tekst

Wypróbuj →

Zakodowana w Base64 wiadomość powitalna (dekoduje się do "Hello, World!").

SGVsbG8sIFdvcmxkIQ==

Wskazowki

  • Base64 to kodowanie, nie szyfrowanie. Nie zapewnia żadnego bezpieczeństwa.
  • Dopełnienie = na końcu może być pomijane w niektórych implementacjach.
  • Base64 bezpieczny dla URL zamienia + na - i / na _, aby uniknąć problemów z kodowaniem URL.
  • Base64 zwiększa rozmiar danych o około 33%.

Zrozumienie Koder/Dekoder Base64

Base64 to schemat kodowania binarnego na tekst zdefiniowany w RFC 4648, który reprezentuje dowolne dane binarne za pomocą 64 drukowalnych znaków ASCII (A-Z, a-z, 0-9, +, /) oraz znaku dopełnienia (=). Jego głównym celem jest transport danych binarnych przez systemy tekstowe, które mogą nie obsługiwać poprawnie surowych bajtów, takie jak poczta elektroniczna, dane JSON, dokumenty XML i parametry URL.

Proces kodowania pobiera co trzy bajty (24 bity) danych wejściowych i dzieli je na cztery 6-bitowe grupy. Każda 6-bitowa wartość jest mapowana na jeden z 64 znaków. Gdy długość danych wejściowych nie jest wielokrotnością trzech bajtów, wynik jest dopełniany jednym lub dwoma znakami = do wielokrotności czterech znaków. Oznacza to, że dane zakodowane w Base64 są o około 33% większe niż oryginał.

Istnieją dwa główne warianty. Standardowy Base64 używa + i / i jest stosowany w kodowaniu MIME dla poczty elektronicznej. Base64 bezpieczny dla URL (base64url) zamienia + na - i / na _, aby uniknąć znaków zarezerwowanych w URL. Tokeny JWT używają wariantu bezpiecznego dla URL bez dopełnienia. Niektóre implementacje pomijają końcowe dopełnienie =, ponieważ długość oryginalnych danych można wywnioskować.

Base64 pojawia się wszędzie w tworzeniu stron internetowych. Data URI osadzają obrazy i czcionki w HTML/CSS. Tokeny JWT to trzy segmenty zakodowane w Base64url. Wiadomości SAML to XML zakodowany w Base64. Odpowiedzi API mogą kodować zawartość binarną jako Base64 w JSON. Co ważne, Base64 to kodowanie, a nie szyfrowanie — nie zapewnia żadnego bezpieczeństwa ani poufności.

Base64 nie jest formą szyfrowania i nigdy nie powinien być traktowany jako taki. Przekształca dane w inną reprezentację bez żadnego klucza ani sekretu, i każdy może natychmiast zdekodować ciąg Base64. Jeśli wrażliwe dane są zakodowane w Base64, są całkowicie odsłonięte. Dla danych, które muszą pozostać tajne, należy używać rzeczywistych algorytmów szyfrowania, takich jak AES lub RSA. Standardowy Base64 używa + i / jako znaków 62 i 63, podczas gdy Base64 bezpieczny dla URL (base64url, zdefiniowany w RFC 4648 sekcja 5) zastępuje je odpowiednio - i _, ponieważ + i / mają specjalne znaczenie w adresach URL. Tokeny JWT zawsze używają wariantu bezpiecznego dla URL bez dopełnienia.

Znaki dopełnienia = zapewniają, że długość zakodowanego wyjścia jest zawsze wielokrotnością 4 znaków. Ponieważ Base64 koduje 3 bajty na 4 znaki, dane wejściowe, których długość nie jest wielokrotnością 3, wymagają dopełnienia: 1 bajt reszty daje ==, a 2 bajty reszty dają =. Niektóre implementacje, w tym JWT, całkowicie pomijają dopełnienie, ponieważ dekoder może obliczyć oryginalną długość na podstawie długości zakodowanego ciągu.

Zwiększenie rozmiaru o 33% jest nieodłączną cechą kodowania: każde 3 bajty (24 bity) stają się 4 znakami ASCII (32 bity), co daje stały współczynnik rozszerzenia 4/3, którego nie można zmniejszyć. Jeśli rozmiar jest problemem, dane należy skompresować przed kodowaniem. Dla dużych zasobów binarnych warto rozważyć odpowiednie mechanizmy transferu binarnego, takie jak przesyłanie wieloczęściowe (multipart) lub binarne ramki WebSocket, zamiast osadzania Base64 w formatach tekstowych.

← Powrot do wszystkich narzedzi