Skip to main content
CheckTown
Dev Tools

Kodowanie i dekodowanie Base64: Kompletny przewodnik programisty

Opublikowano 5 min czytania
W tym artykule

Czym jest Base64?

Base64 to schemat kodowania, który przekształca dane binarne w ciąg znaków ASCII. Używa 64 bezpiecznych znaków (A-Z, a-z, 0-9, +, /) do reprezentowania dowolnych danych binarnych, umożliwiając ich bezpieczne przesyłanie przez protokoły tekstowe, takie jak nagłówki HTTP, poczta e-mail (MIME) oraz JSON.

Base64 to nie szyfrowanie — to kodowanie. Każdy może zdekodować Base64 z powrotem do oryginalnych danych bez żadnego klucza. Celem Base64 jest umożliwienie danych binarnym przepływu przez systemy zaprojektowane dla tekstu, a nie zapewnienie bezpieczeństwa.

Jak działa kodowanie Base64

Base64 konwertuje każdą grupę 3 bajtów (24 bity) na 4 znaki Base64 (po 6 bitów każdy), dopełniając znakami =, jeśli dane wejściowe nie są podzielne przez 3.

  • Grupowanie bajtów — bajty wejściowe są grupowane w zestawy po 3 i konwertowane na 4 znaki wyjściowe
  • Mapowanie znaków — każda 6-bitowa grupa odwzorowuje się na jeden z 64 drukowalnych znaków ASCII
  • Dopełnienie — znaki = są dodawane, aby długość wyjścia była zawsze wielokrotnością 4

Wypróbuj za darmo — bez rejestracji

Zakoduj lub zdekoduj Base64 →

Kiedy używać Base64

Base64 jest stosowany zawsze, gdy dane binarne muszą być osadzone w formatach tekstowych.

  • Załączniki e-mail — kodowanie MIME używa Base64 do dołączania plików binarnych do wiadomości e-mail
  • Data URI — osadzaj obrazy bezpośrednio w HTML/CSS jako data:image/png;base64,... aby unikać dodatkowych żądań HTTP
  • Uwierzytelnianie API — dane uwierzytelniające Basic Auth są kodowane w Base64 w nagłówku HTTP Authorization

Często zadawane pytania

Czy Base64 zwiększa rozmiar danych?

Tak. Kodowanie Base64 zwiększa rozmiar o około 33%, ponieważ każde 3 bajty wejściowe dają 4 bajty wyjściowe. Jest to nieunikniony kompromis wynikający z przystosowania danych binarnych do postaci tekstowej.

Jaka jest różnica między standardowym Base64 a Base64 bezpiecznym dla URL?

Standardowy Base64 używa znaków + i /, które mają specjalne znaczenie w URL. Base64 bezpieczny dla URL (Base64url) zastępuje + przez - i / przez _, tworząc ciągi bezpieczne do użycia w URL i nazwach plików bez kodowania procentowego. Tokeny JWT używają kodowania Base64url.

Jak obsługiwać Base64 z danymi innymi niż UTF-8?

Base64 operuje na surowych bajtach, a nie tekście. Podczas kodowania danych binarnych, takich jak obrazy czy zaszyfrowana zawartość, traktuj je jako tablicę bajtów, a nie ciąg znaków. W JavaScript używaj Uint8Array lub Buffer; w Pythonie używaj obiektów bytes, aby uniknąć problemów z kodowaniem danych innych niż UTF-8.

Powiązane narzędzia