Za darmo, bez rejestracji
Base64 – dekodowanie i kodowanie
Base64 zapisuje dowolne dane za pomocą 64 bezpiecznych znaków: „Witaj, świecie!” to V2l0YWosIMWbd2llY2llIQ==. Wklej Base64, aby go zdekodować, albo wpisz tekst, aby go zakodować. Narzędzie obsługuje polskie znaki i emoji w UTF-8, wariant URL-safe używany w tokenach, linie po 76 znaków z poczty e-mail i całe pliki zamienione w data URL. Wszystko działa w Twojej przeglądarce i nic nie trafia na serwer.
Jak z tego korzystać
- Wybierz kodowanie lub dekodowanie. Na karcie „Tekst” wybierz „Koduj”, aby zamienić tekst na Base64, albo „Dekoduj”, aby odczytać ciąg Base64. Do obrazów i dokumentów służy karta „Plik”.
- Wklej lub wpisz. Wynik zmienia się w trakcie pisania. Przy dekodowaniu spacje i znaki nowej linii są pomijane, a narzędzie przyjmuje zarówno alfabet standardowy, jak i URL-safe, z dopełnieniem lub bez.
- Skopiuj lub pobierz. Skopiuj wynik jednym kliknięciem. Na karcie „Plik” możesz skopiować data URL, pobrać go jako plik tekstowy albo zamienić wklejony Base64 z powrotem w oryginalny plik.
Jak działa Base64
Komputery przechowują dane jako bajty po 8 bitów, ale wiele kanałów, takich jak poczta e-mail, adresy URL, JSON czy atrybuty HTML, bezpiecznie przenosi tylko zwykły tekst. Base64 rozwiązuje ten problem: bierze bajty po 3 naraz (24 bity) i dzieli je na 4 grupy po 6 bitów. Każda 6-bitowa grupa to liczba od 0 do 63, która wskazuje jeden znak ze stałego alfabetu: A–Z, a–z, 0–9, + i /.
Gdy długość danych nie jest wielokrotnością 3 bajtów, ostatnią grupę uzupełnia się zerowymi bitami, a brakujące znaki zastępuje znakiem =. Dlatego „Man” koduje się jako TWFu, „Ma” jako TWE=, a „M” jako TQ==. Rysunek pod narzędziem pokazuje to bit po bicie dla pierwszych trzech bajtów Twojego tekstu.
| Tekst | Bajty | Base64 |
|---|---|---|
| Man | 3 | TWFu |
| Ma | 2 | TWE= |
| M | 1 | TQ== |
| ł | 2 (c5 82) | xYI= |
| € | 3 (e2 82 ac) | 4oKs |
Każde 3 bajty stają się 4 znakami, więc Base64 jest o około jedną trzecią większy od oryginału: 30 000 bajtów to 40 000 znaków, czyli o 33,3% więcej. Tekst jest najpierw zamieniany na bajty w UTF-8, dlatego każda polska litera z ogonkiem lub kreską zajmuje 2 bajty, a znak euro aż 3.
Gdzie używa się Base64
- Załączniki e-mail: standard MIME koduje pliki w Base64 i łamie wiersze co 76 znaków. Włącz opcję „Linie po 76 znaków”, aby uzyskać ten sam układ.
- Data URL w HTML i CSS: małą ikonę można osadzić jako data:image/png;base64,…, dzięki czemu strona wysyła o jedno żądanie mniej. Taki adres utworzysz na karcie „Plik”.
- Tokeny internetowe: JSON Web Token (JWT) to trzy części w base64url oddzielone kropkami. Nagłówek {"alg":"HS256","typ":"JWT"} zamienia się w eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9. Zdekodowanie tokenu pokazuje jego zawartość, ale do sprawdzenia podpisu potrzebny jest klucz.
- Uwierzytelnianie HTTP Basic: nagłówek „Authorization: Basic amFuOmhhc2xvMTIz” to po prostu jan:haslo123 w Base64, dlatego może być przesyłany wyłącznie przez HTTPS.
- API i pliki konfiguracyjne: dane binarne, takie jak certyfikaty, klucze i obrazy, często umieszcza się w JSON lub YAML właśnie jako Base64.
Base64 to nie szyfrowanie
Base64 to kodowanie, a nie szyfr: nie ma klucza, a każdy może go zdekodować w sekundę, tym narzędziem albo jedną linijką kodu. Niczego nie ukrywa. Hasło, klucz API albo dane osobowe zapisane w Base64 są tak samo odsłonięte jak zwykły tekst.
Do ochrony danych używaj prawdziwego szyfrowania (na przykład AES) i przesyłaj je przez HTTPS; do przechowywania haseł służą wolne funkcje skrótu zaprojektowane do tego celu. Base64 sprawia jedynie, że dane bezpiecznie przechodzą przez systemy, które oczekują tekstu. Jeśli potrzebujesz wartości losowych, na przykład do losowania lub próbki testowej, zajrzyj do generatora liczb losowych.
Narzędzie dekoduje w Twojej przeglądarce, więc wklejenie tutaj tokenu nigdzie go nie wysyła. Mimo to traktuj tokeny i klucze z systemów produkcyjnych jak tajemnicę.
Warianty: URL-safe, dopełnienie i podział na linie
Znaki + i / mają specjalne znaczenie w adresach internetowych i nazwach plików. Wariant base64url zastępuje je znakami - i _: te same bajty dają PDw/Pz8+Pg== w standardowym Base64 i PDw_Pz8-Pg== w base64url. Często pomija się też dopełnienie =, bo długość ciągu i tak pokazuje, gdzie kończą się dane.
Dekoder przyjmuje oba alfabety i działa z dopełnieniem lub bez. Zgłasza precyzyjny błąd, gdy znak nie należy do alfabetu (wraz z jego pozycją), gdy długość nie może być prawidłowa albo gdy znak = pojawia się w środku ciągu. Spacje i znaki nowej linii są pomijane, tak jak wymaga standard MIME.
Przykłady krok po kroku
Zakoduj krótki tekst
„Witaj, świecie!” ma w UTF-8 16 bajtów, bo litera ś zajmuje dwa. 16 = 5 × 3 + 1, więc wynik ma 6 grup po 4 znaki i kończy się na ==: V2l0YWosIMWbd2llY2llIQ==.
Odczytaj nagłówek Basic auth
Wklej amFuOmhhc2xvMTIz w trybie „Dekoduj”, a otrzymasz jan:haslo123. Dane logowania może odczytać każdy, kto zobaczy nagłówek.
Polskie znaki
Zdanie „Zażółć gęślą jaźń” ma 17 znaków, ale 26 bajtów w UTF-8, bo każda z dziewięciu liter z ogonkiem lub kreską zajmuje dwa bajty. W Base64 to WmHFvMOzxYLEhyBnxJnFm2zEhSBqYcW6xYQ=. Jeśli po zdekodowaniu zamiast tekstu widzisz bajty w zapisie szesnastkowym, tekst zapisano przed kodowaniem w innym standardzie znaków, np. Windows-1250 lub ISO-8859-2.
Źródła
- RFC 4648, „The Base16, Base32, and Base64 Data Encodings” (IETF, 2006): sekcja 4 (alfabet Base64), sekcja 5 (base64url), sekcja 3.2 (dopełnienie), sekcja 3.3 (znaki spoza alfabetu) i sekcja 10 (wektory testowe). Zweryfikowano 22.10.2026.
- RFC 2045, „Multipurpose Internet Mail Extensions (MIME) Part One” (IETF, 1996), sekcja 6.8: kodowanie transferowe Base64 z wierszami o długości najwyżej 76 znaków.
- RFC 7519, „JSON Web Token (JWT)” (IETF, 2015): użycie base64url bez dopełnienia.
- RFC 3629, „UTF-8, a transformation format of ISO 10646” (IETF, 2003): kodowanie znaków od U+0080 do U+07FF, w tym polskich liter, na dwóch bajtach.
Przykłady na tej stronie są obliczane tym samym kodem co narzędzie, więc ciągi w tekście zawsze zgadzają się z tym, co ono generuje.
Najczęściej zadawane pytania
Jak zdekodować Base64?
Czy Base64 to szyfrowanie?
Dlaczego Base64 kończy się na = albo ==?
Dlaczego Base64 jest większy od oryginału?
Czym różni się Base64 od base64url?
Skąd błąd „nieprawidłowy znak”?
Dlaczego po zdekodowaniu polskie litery wyglądają dziwnie?
Czy moje pliki są gdzieś wysyłane?
Ostatnia aktualizacja: środa, 14 października 2026