Jak używać
- Przeciągnij plik na pole upuszczania albo kliknij je, aby wybrać plik z urządzenia (do 100 MB).
- W polu „Wyjście” wybierz czysty Base64 dla interfejsów API i plików konfiguracyjnych albo data URI dla HTML i CSS.
- Włącz opcję „Zawijaj wiersze co 76 znaków” tylko wtedy, gdy miejsce docelowe oczekuje wierszy w stylu MIME, np. treść wiadomości e-mail.
- Sprawdź nazwę pliku, typ MIME i rozmiary, a następnie skopiuj wynik lub pobierz go jako plik .txt.
Po co kodować plik w Base64?
Wiele formatów służących do przesyłania danych między systemami obsługuje wyłącznie tekst. JSON, XML, YAML, HTML i nagłówki wiadomości e-mail nie mogą przechowywać dowolnych bajtów, ponieważ plik może zawierać bajty zerowe, nieprawidłowe sekwencje znaków lub znaki końca wiersza, które parser tekstu by zmienił. Base64 zamienia każde 3 bajty pliku na 4 znaki z zestawu 64 liter, cyfr oraz znaków + i /, dzięki czemu każdy plik można przesłać jako zwykły ciąg znaków i zdekodować z powrotem do dokładnie tych samych bajtów.
Ceną jest rozmiar: zakodowany tekst jest o około 33% większy niż plik, a podziały wierszy dodają jeszcze trochę. Plik o rozmiarze 3 MB zamienia się w mniej więcej 4 MB tekstu Base64.
Typowe zastosowania
- Interfejsy API JSON i XML. Punkty końcowe, które nie przyjmują przesyłania plików w formularzach multipart, często oczekują pliku jako ciągu Base64 w jednym polu, a jego nazwy i typu w innych.
- Załączniki e-mail. MIME koduje załączniki w Base64 w wierszach o długości najwyżej 76 znaków (RFC 2045). Zawijanie wierszy daje dokładnie taki sam układ.
- Konfiguracja i sekrety. Wartości w sekcji
dataobiektu Kubernetes Secret są zapisane w Base64, więc certyfikat TLS, magazyn kluczy lub plik licencji trzeba zakodować, zanim trafi do manifestu. Systemy CI często w ten sam sposób przechowują binarne sekrety w zmiennych środowiskowych. - Bazy danych i kod źródłowy. Mały plik binarny, np. czcionkę, dźwięk lub dane testowe, można zapisać w kolumnie tekstowej lub w stałej tekstowej zamiast w osobnym pliku.
W przypadku obrazów narzędzie Obraz na Base64 oferuje dodatkowo skalowanie oraz gotowe fragmenty kodu HTML i CSS. Aby zamienić Base64 z powrotem na plik, użyj narzędzia Base64 na plik.
Czysty Base64 czy data URI?
Czysty Base64 to same zakodowane bajty. Tego właśnie oczekują interfejsy API, Kubernetes, bazy danych i większość bibliotek programistycznych, zwykle obok osobnego pola z nazwą pliku lub typem zawartości.
Data URI dodaje prefiks z typem MIME, np. data:application/pdf;base64,, dzięki czemu przeglądarka może użyć całego ciągu jako adresu URL w atrybucie src lub href albo w CSS w url(). Nie wysyłaj tego prefiksu do interfejsu API, który oczekuje czystego Base64, ponieważ wiele dekoderów go odrzuca. Aby samodzielnie ustawić typ MIME lub użyć kodowania procentowego, skorzystaj z generatora data URI.
W przypadku JSON, YAML i kodu źródłowego pozostaw zawijanie wierszy wyłączone. Ciąg JSON nie może zawierać surowych podziałów wierszy, a zawinięte wartości w YAML łatwo się psują.
Kodowanie pliku w wierszu poleceń
# Linux (GNU coreutils): -w 0 wyłącza domyślne zawijanie co 76 znaków
base64 -w 0 report.docx > report.txt
# macOS
base64 -i report.docx -o report.txt
# Windows PowerShell
[Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\files\report.docx"))
# Kubernetes sam koduje plik
kubectl create secret generic app-cert --from-file=tls.crt
Najczęściej zadawane pytania
Czy obowiązuje limit rozmiaru pliku?
Można zakodować pliki do 100 MB. Wynik jest o około jedną trzecią większy, więc plik 100 MB daje około 133 MB tekstu. Wyświetlanie tak dużej ilości tekstu może spowolnić stronę, dlatego w przypadku dużych plików użyj przycisku „Pobierz” zamiast kopiować wynik z pola wyjściowego.
Czy pliki są przesyłane na serwer?
Nie. Plik jest odczytywany i kodowany przez JavaScript w przeglądarce i nic nie jest wysyłane przez sieć, więc certyfikaty, klucze i prywatne dokumenty pozostają na urządzeniu.
Czy Base64 kompresuje lub szyfruje plik?
Ani jedno, ani drugie. Base64 zwiększa rozmiar danych o około 33%, a każdy może je zdekodować. Jeśli plik ma pozostać poufny, zaszyfruj go przed zakodowaniem; jeśli liczy się rozmiar, najpierw go skompresuj, np. do archiwum ZIP lub gzip.
Dlaczego wynik zawiera podziały wierszy?
Włączona jest opcja „Zawijaj wiersze co 76 znaków”. Odpowiada ona formatowi MIME używanemu w poczcie e-mail, ale większość interfejsów API, dokumentów JSON i manifestów Kubernetes oczekuje jednego nieprzerwanego wiersza, więc w takich przypadkach ją wyłącz.