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.