Base64 to sposób reprezentowania danych binarnych za pomocą zwykłych znaków tekstowych. Obraz, dokument lub fragment tekstu można przedstawić w bajtach. Gdy system potrzebuje tych bajtów w polu tekstowym, Base64 zapewnia odwracalną pisownię, którą odbiorca może później odszyfrować.
Mały przykład
Tekst Hello zawiera pięć bajtów ASCII. Kodowanie tych bajtów powoduje powstanie SGVsbG8=. Dekodowanie tej wartości zwraca te same pięć bajtów, które można następnie odczytać jako tekst oryginalny. Znak równości należy do ostatniej grupy kodowania; nie jest częścią słowa Witam.
Text: Hello
Bytes in Hex: 48 65 6c 6c 6f
Base64: SGVsbG8=
Decoded bytes: 48 65 6c 6c 6f
Wypróbuj przykład w koderze, skopiuj wynik do dekodera i porównaj zwrócony tekst. Następnie wypróbuj chiński znak lub emoji. Tekst musi najpierw stać się bajtami przy użyciu kodowania znaków, takiego jak UTF-8; Base64 sam w sobie nie definiuje języka ani zestawu znaków.
Gdzie się z tym spotykasz
Typowe przykłady obejmują pole binarne w JSON, obraz osadzony w danych URI i czytelne części niektórych tokenów. Otaczający format dostarcza kontekstu. Sam ciąg Base64 nie mówi o oryginalnej nazwie pliku, typie MIME, kodowaniu znaków ani o tym, czy zawartość jest godna zaufania.
Dane URI dodają przedrostek, taki jak data:image/png;base64,. Ten przedrostek opisuje ładunek, ale nie jest częścią alfabetu Base64. Niektóre dekodery rozumieją opakowanie; inni oczekują tylko części po przecinku. Wybierz odpowiednie narzędzie lub tryb zamiast losowo usuwać nieznane znaki.
Trzy częste nieporozumienia
Po pierwsze, Base64 nie jest szyfrowaniem: do jego odszyfrowania nie jest potrzebny żaden sekret. Po drugie, nie zmniejsza rozmiaru plików; zwykłe dopełnione dane wyjściowe są w przybliżeniu o jedną trzecią większe niż oryginalne bajty. Po trzecie, nie każdy zdekodowany wynik jest tekstem. Obraz może poprawnie dekodować do bajtów, które w polu tekstowym wyglądają jak bzdury.
Jeśli dekodowanie się nie powiedzie, sprawdź oryginalne źródło, wybrany alfabet i czy ciąg znaków został obcięty. Gdy się powiedzie, wybierz odpowiedni widok: tekst dla prawidłowych bajtów tekstowych, szesnastkowy do kontroli lub plik do pobrania dla danych binarnych. Szczegółowy alfabet i przykłady Base64 są zdefiniowane w RFC 4648.