Base64 to schemat kodowania danych binarnych na tekst, który reprezentuje dane binarne przy użyciu zestawu 64 drukowalnych znaków ASCII. Został zaprojektowany do bezpiecznego transportu danych binarnych przez systemy obsługujące tylko tekst — takie jak poczta elektroniczna (MIME), nagłówki HTTP i XML. Nazwa "Base64" pochodzi od 64 znaków używanych w alfabecie kodowania.
Kodowanie działa poprzez pobranie trzech bajtów wejściowych (24 bity) i podzielenie ich na cztery grupy 6-bitowe. Każda wartość 6-bitowa jest odwzorowywana na jeden znak w alfabecie Base64. Jeśli długość wejścia nie jest wielokrotnością trzech, dodawane są znaki dopełniające (=), aby osiągnąć wielokrotność czterech znaków wyjściowych. Wynikiem jest ciąg znaków o około 33% większy od danych oryginalnych, ale bezpieczny do przesyłania jako zwykły tekst.
Dlaczego warto używać tego narzędzia?
Ten koder poprawnie obsługuje tekst Unicode, obsługuje zarówno standardowy, jak i URL-safe wariant i koduje całkowicie w przeglądarce — Twoje dane nigdy nie opuszczają Twojego komputera.
⚡
Natychmiastowe kodowanie
Wyniki pojawiają się podczas pisania. Nie trzeba klikać przycisków ani czekać na odpowiedź serwera.
🔗
Przełącznik URL-safe
Przełączaj się między standardowym (+/) a URL-safe (-_) kodowaniem jednym kliknięciem. Dopełnienie jest automatycznie usuwane dla wariantu URL-safe.
🔒
W pełni po stronie klienta
Całe kodowanie odbywa się lokalnie w przeglądarce przy użyciu natywnego API btoa i TextEncoder. Nic nie jest wysyłane na żaden serwer.
🎛️
Obsługa Unicode
Poprawnie obsługuje pełny Unicode, w tym emoji, znaki CJK i dowolny tekst UTF-8, używając encodeURIComponent przed kodowaniem.
Jak korzystać z tego kodera Base64 online
Bez konta, bez instalacji, bez przesyłania — wklej tekst, a zakodowany wynik pojawi się natychmiast.
1
Wklej lub wpisz tekst
Kliknij pole wejściowe i wklej dowolny tekst — zwykłe ciągi znaków, payloady JSON, klucze API, adresy e-mail lub dowolne treści UTF-8. Kodowanie aktualizuje się na bieżąco podczas pisania.
2
Wybierz wariant
Wybierz Standardowy (RFC 4648) dla MIME, HTTP Basic Auth i ogólnego zastosowania. Wybierz URL-safe dla tokenów JWT, parametrów ciągu zapytania, nazw plików i każdego kontekstu, w którym + lub / mogłoby zakłócić parsowanie URL.
3
Skopiuj wynik
Kliknij Kopiuj, aby wysłać ciąg Base64 do schowka jednym kliknięciem. Wynik jest gotowy do wklejenia bezpośrednio w kod, plik konfiguracyjny lub żądanie API.
4
Użyj w swojej aplikacji
Wklej zakodowany ciąg tam, gdzie jest potrzebny — nagłówki Authorization, data URI, pola JSON, zmienne środowiskowe lub sekrety Kubernetes. W przypadku wyjścia URL-safe wypełnienie zostało już usunięte.
Alfabet Base64
Base64 używa 64 znaków: wielkie litery A–Z (wartości 0–25), małe litery a–z (26–51), cyfry 0–9 (52–61) i dwa znaki specjalne dla wartości 62 i 63. Standardowy wariant RFC 4648 używa + i /; wariant URL-safe zastępuje je - i _, aby unikać konfliktów w adresach URL i nazwach plików.
A–Z
0–25
ABCDEFGHIJKLMNOPQRSTUVWXYZ
a–z
26–51
abcdefghijklmnopqrstuvwxyz
0–9
52–61
0123456789
+, /
62–63
Standard RFC 4648 — unikać w adresach URL i nazwach plików
-, _
62–63
Wariant URL-safe (RFC 4648 §5) — bezpieczny w adresach URL i nazwach plików
Standardowy Base64 vs URL-safe
Standardowy alfabet Base64 używa + i /, które są znakami specjalnymi w adresach URL i ścieżkach plików. Wariant URL-safe zastępuje je - i _ i zazwyczaj pomija znaki dopełnienia =. Używaj kodowania URL-safe dla tokenów JWT, danych w ciągach zapytań, nazw plików i każdego kontekstu, gdzie + lub / mogłyby być błędnie interpretowane.
Wejście
Standardowy
URL-safe
Man
TWFu
TWFu
Hello
SGVsbG8=
SGVsbG8
A
QQ==
QQ
1+1=2
MSsxPTI=
MSsxPTI
Typowe przypadki użycia
Załączniki e-mail (MIME)
SMTP został zaprojektowany dla 7-bitowego tekstu ASCII. Kodowanie Base64 jest używane przez standard MIME do bezpiecznego osadzania binarnych załączników (obrazy, PDF-y, pliki wykonywalne) w wiadomościach e-mail.
Identyfikatory URI danych
Osadzaj obrazy, czcionki i inne zasoby bezpośrednio w HTML lub CSS za pomocą identyfikatorów URI danych: data:image/png;base64,... — eliminując dodatkowe żądania HTTP dla małych zasobów.
Ładunki API
Interfejsy API REST często wymagają kodowania Base64 pól binarnych (przesyłane pliki, klucze kryptograficzne, certyfikaty) przy osadzaniu w JSON, ponieważ JSON nie ma typu binarnego.
Pliki konfiguracyjne
Sekrety Kubernetes, zmienne środowiskowe i konfiguracje CI/CD powszechnie przechowują binarne sekrety i certyfikaty jako ciągi Base64, aby uniknąć problemów z escaping.
HTTP Basic Auth
Nagłówek HTTP Authorization: Basic koduje dane uwierzytelniające jako Base64(nazwa_użytkownika:hasło). To nie jest szyfrowanie — zapewnia jedynie kodowanie do transportu w nagłówkach.
Tokeny JWT
JSON Web Token używają URL-safe Base64 (base64url) do kodowania segmentów nagłówka i ładunku, czyniąc token bezpiecznym do użycia w adresach URL i nagłówkach HTTP bez escaping.
Kiedy NIE używać Base64
Base64 to kodowanie transportowe, nie mechanizm bezpieczeństwa. Oto najczęstsze błędne zastosowania powodujące realne problemy w środowisku produkcyjnym:
✕
Nie do bezpieczeństwa ani szyfrowania
Base64 jest trywialnie odwracalny — dekodowanie nie wymaga żadnego klucza ani hasła. Każdy, kto zobaczy ciąg Base64, może go zdekodować w kilka sekund. Nigdy nie używaj Base64 jako substytutu szyfrowania, haszowania ani kontroli dostępu.
✕
Nie do kompresji
Base64 zwiększa rozmiar wyjścia o około 33%. Jest przeciwieństwem kompresji. Nie używaj go do zmniejszania rozmiaru ładunków — zamiast tego użyj gzip, Brotli lub zstd.
✕
Nie do przechowywania plików binarnych
Przechowywanie dużych plików binarnych jako Base64 w bazach danych lub API JSON znacznie marnuje przestrzeń dyskową i pamięć. Używaj magazynu obiektów (S3, R2, Cloudflare) i obsługuj dane binarne bezpośrednio.
Przykłady kodu
Jak zakodować ciąg znaków w Base64 w popularnych językach i środowiskach:
JavaScript (browser)
// Standard Base64
const encoded = btoa(unescape(encodeURIComponent(text)))
// URL-safe Base64 (no padding)
const urlSafe = btoa(unescape(encodeURIComponent(text)))
.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '')
Istnieje kilka koderów Base64 online. Kluczowe wyróżniki do codziennego użytku deweloperskiego to prywatność, poprawność i obsługa wariantów.
W pełni prywatny — bez serwera
Ten koder działa w całości w przeglądarce, używając natywnego API btoa i TextEncoder. Twój tekst nigdy nie jest przesyłany na żaden serwer — bezpieczny dla kluczy API, tokenów i sekretów.
Poprawne kodowanie Unicode
Wiele narzędzi Base64 online po cichu uszkadza dane wejściowe inne niż ASCII. To narzędzie prawidłowo obsługuje pełny Unicode — emoji, CJK, arabski i cały tekst UTF-8 — kodując najpierw do bajtów UTF-8.
Oba warianty w jednym miejscu
Większość narzędzi oferuje tylko standardowy Base64. Ten koder udostępnia zarówno wariant standardowy (+/), jak i URL-safe (-_) z automatyczną obsługą wypełnienia — bez ręcznego zastępowania znaków.
Często zadawane pytania
Czy Base64 to to samo co szyfrowanie?
Nie. Base64 to schemat kodowania, a nie szyfrowanie. Jest trywialnie odwracalny przez każdego — do jego dekodowania nie jest wymagany żaden klucz ani hasło. Nigdy nie używaj Base64 do ochrony wrażliwych danych. Użyj odpowiedniego szyfrowania (AES, RSA) w tym celu.
Dlaczego wynik Base64 kończy się na = lub ==?
Base64 działa w grupach po 3 bajty (24 bity), produkując 4 znaki Base64. Jeśli długość wejścia nie jest wielokrotnością 3, dodawane są znaki dopełnienia (=), aby długość wyjścia była wielokrotnością 4. Jeden = oznacza, że ostatnia grupa miała 2 bajty; dwa = oznaczają, że miała 1 bajt.
Czym jest URL-safe Base64?
URL-safe Base64 (zdefiniowany w RFC 4648 §5) zastępuje + przez - i / przez _, aby zakodowany ciąg mógł być używany w adresach URL, nazwach plików i nagłówkach HTTP bez kodowania procentowego. Zazwyczaj pomija również znaki dopełnienia =.
O ile Base64 zwiększa rozmiar pliku?
Kodowanie Base64 zwiększa rozmiar o około 33%. Każde 3 bajty wejścia stają się 4 znakami wyjścia. Dla pliku o rozmiarze 1 MB, wynik Base64 będzie miał około 1,37 MB.
Czy mogę kodować pliki binarne za pomocą tego narzędzia?
To narzędzie koduje ciągi tekstowe (traktowane jako bajty UTF-8). Do kodowania dowolnych plików binarnych (obrazy, PDF-y, pliki wykonywalne) użyj biblioteki językowej lub narzędzia CLI, które czyta surowe bajty.
Jaka jest różnica między btoa() a Buffer.from().toString('base64')?
btoa() to wbudowana funkcja przeglądarki działająca na ciągach Latin-1; zgłosi błąd dla znaków nie-ASCII, chyba że najpierw zakoduje je do bajtów UTF-8 (używając encodeURIComponent). Buffer.from(tekst).toString('base64') w Node.js obsługuje ciągi UTF-8 bezpośrednio i jest preferowanym podejściem po stronie serwera.
Czy Base64 działa z plikami binarnymi?
To narzędzie koduje ciągi tekstowe jako bajty UTF-8 do Base64. W przypadku plików binarnych (obrazy, PDF, pliki wykonywalne) użyj narzędzia CLI lub biblioteki językowej czytającej surowe bajty. W przeglądarce użyj FileReader.readAsDataURL(), który zwraca data URI z zawartością binarną zakodowaną w Base64.
Czy istnieje limit rozmiaru kodowania?
To narzędzie działa w całości w przeglądarce bez limitu po stronie serwera. Praktyczne limity zależą od pamięci przeglądarki. W przypadku bardzo dużych danych wejściowych (powyżej kilku MB) narzędzie CLI, takie jak base64 (Linux/macOS) lub certutil -encode (Windows), jest bardziej wydajne.