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.

Base64
V2l0YWosIMWbd2llY2llISBDZW5hOiAxMiB6xYI=
29 bajtówDane wejściowe (UTF-8)
40Znaki Base64
ZnakiWitBajty (dziesiętnie · hex) i bity87 · 57105 · 69116 · 74010101110110100101110100Grupy po 6 bitów21543752Base64V2l0
Pierwsze 3 bajty, bit po bicie. Bity zaznaczone przerywaną linią to dodane zera, które uzupełniają ostatnią grupę; brakujące grupy zamieniają się w =.

Jak z tego korzystać

  1. 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”.
  2. 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.
  3. 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.

TekstBajtyBase64
Man3TWFu
Ma2TWE=
M1TQ==
ł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?
Wybierz „Dekoduj” i wklej ciąg. Tekst pojawi się od razu. Jeśli bajty nie są tekstem, na przykład to obraz, narzędzie pokaże je w zapisie szesnastkowym, a karta „Plik” pozwoli pobrać plik.
Czy Base64 to szyfrowanie?
Nie. To odwracalne kodowanie bez klucza: każdy może je zdekodować. Nigdy nie używaj go do ochrony haseł ani danych osobowych.
Dlaczego Base64 kończy się na = albo ==?
Znaki = to dopełnienie. Base64 działa na grupach po 3 bajty; jeśli ostatnia grupa ma tylko 2 bajty, dodaje się jeden znak =, a jeśli ma 1 bajt – dwa.
Dlaczego Base64 jest większy od oryginału?
Bo 3 bajty zamieniają się w 4 znaki, co daje wzrost o około 33%. 30 000 bajtów to 40 000 znaków, jeszcze przed podziałem na linie.
Czym różni się Base64 od base64url?
base64url używa znaków - i _ zamiast + i /, więc można go umieścić w adresie URL i nazwie pliku bez dodatkowego kodowania. Definiuje go sekcja 5 RFC 4648 i w tym formacie zapisuje się tokeny JWT.
Skąd błąd „nieprawidłowy znak”?
Ciąg zawiera znak spoza alfabetu Base64, często cudzysłów, znak % z kodowania adresów URL albo znak dodany przy kopiowaniu i wklejaniu. Komunikat pokazuje, który to znak i gdzie się znajduje; usuń go i spróbuj ponownie.
Dlaczego po zdekodowaniu polskie litery wyglądają dziwnie?
Narzędzie odczytuje bajty jako UTF-8. Jeśli tekst zakodowano wcześniej w starszym kodowaniu, np. Windows-1250, litery takie jak ą czy ł mogą się nie wyświetlić poprawnie. Wtedy narzędzie pokaże bajty w zapisie szesnastkowym.
Czy moje pliki są gdzieś wysyłane?
Nie. Pliki odczytuje i przetwarza Twoja przeglądarka, na Twoim urządzeniu. Nic nie trafia na serwer.

Ostatnia aktualizacja: środa, 14 października 2026