RevealTheme logo

Koder i dekoder Base64

Koduj ciągi do Base64 lub dekoduj Base64 na tekst. Szanuje Twoją prywatność: działa w Twojej przeglądarce.

Czym jest Base64 i dlaczego jest wszędzie?

Base64 to schemat kodowania – nie szyfrowania – który przedstawia dowolne dane binarne, używając jedynie 64 drukowalnych znaków ASCII (A-Z, a-z, 0-9 oraz +, / i = jako wypełnienie). Istnieje, ponieważ wiele protokołów transportowych, formatów plików i interfejsów API obsługuje wyłącznie tekst lub traktuje pewne bajty w specjalny sposób: poczta e-mail (SMTP zaprojektowano dla 7-bitowego ASCII), JSON (nie może zawierać surowych bajtów), adresy URL (mają znaki zarezerwowane), nagłówki HTTP (tekst zorientowany na wiersze) oraz atrybuty HTML – wszystkie potrzebują sposobu na przesyłanie danych binarnych kanałami tekstowymi. Base64 rozwiązuje to, grupując bajty wejściowe w zestawy po 3 (24 bity) i ponownie kodując każdy zestaw jako 4 znaki Base64 (po 6 bitów każdy). Narzut rozmiaru wynosi dokładnie 33%: każde 3 bajty zamieniają się w 4 znaki. To narzędzie koduje tekst UTF-8 lub ciągi Base64 w obu kierunkach, w całości w Twojej przeglądarce. Poprawnie obsługuje wielobajtowe znaki UTF-8 (emoji, alfabety niełacińskie), które naiwne implementacje Base64 używające bezpośrednio atob/btoa psują.

Typowe przypadki użycia

  • Osadzaj małe obrazy bezpośrednio w CSS jako adresy URL data: (eliminuje jedno żądanie HTTP dla drobnych ikon).

  • Zdekoduj ładunek nagłówka JWT lub Basic Auth, aby sprawdzić jego zawartość.

  • Zakoduj binarną zawartość pliku, aby umieścić ją w polu JSON lub zmiennej środowiskowej.

  • Przenoś dane binarne przez systemy, które nie zachowują dowolnych bajtów (e-mail, kopiowanie/wklejanie).

  • Zdekoduj odpowiedzi API lub ładunki webhooków zakodowane w base64 podczas debugowania.

  • Konwertuj binarne poświadczenia na format przyjazny do kopiowania na potrzeby przekazania zespołowi operacyjnemu.

Najczęściej zadawane pytania

Czy Base64 to szyfrowanie?
Nie. Base64 to odwracalne kodowanie: każdy może je natychmiast zdekodować bez klucza. Aby zachować poufność, użyj prawdziwego szyfrowania (AES-256, RSA lub naszego narzędzia do szyfrowania AES). Traktowanie Base64 jako zabezpieczenia to najczęstszy błąd z nim związany.
Dlaczego Base64 dodaje ~33% rozmiaru?
Kodowanie odwzorowuje 3 bajty (24 bity) wejścia na 4 znaki (24 bity, ponieważ każdy znak Base64 reprezentuje 6 bitów). Narzut rozmiaru jest nieodłączny i nieunikniony. Aby uzyskać mniejsze reprezentacje binarne, użyj Base85 lub wysyłaj surowe dane binarne, jeśli kanał na to pozwala.
Czym jest Base64 bezpieczny dla adresów URL?
To wariant zdefiniowany w RFC 4648, który zastępuje + przez - oraz / przez _, dzięki czemu wynik jest bezpieczny do umieszczenia w ścieżkach adresów URL lub nazwach plików bez kodowania procentowego. JWT używają Base64 bezpiecznego dla adresów URL. Wiele interfejsów API akceptuje oba warianty.
Dlaczego widzę „=” na końcu?
To znaki wypełnienia. Base64 generuje wynik w grupach po 4 znaki; jeśli wejście nie jest wielokrotnością 3 bajtów, ostatnia grupa jest uzupełniana znakami „=” do 4 znaków. Niektóre warianty Base64 pomijają wypełnienie; oba dekodują się tak samo.
Czy obsługuje emoji i tekst niełaciński?
Tak. Narzędzie najpierw konwertuje tekst na bajty UTF-8, a następnie koduje te bajty w Base64. Pozwala to uniknąć klasycznego błędu JavaScriptu, w którym btoa() zawodzi przy znakach spoza Latin1.
Gdzie spotykam Base64 w rzeczywistych aplikacjach?
Wszędzie: adresy URL data: dla obrazów w CSS, nagłówki Authorization: Basic, segmenty JWT, podpisy podpisanych adresów URL, wstępnie podpisane adresy URL S3, certyfikaty PKCS (format PEM), załączniki poczty (MIME), ładunki kodów QR oraz sekrety w stylu .env nowoczesnych platform wdrożeniowych.

Powiązane narzędzia