Utilia

Koder i dekoder Base64

Darmowy koder i dekoder Base64 z pełną obsługą UTF-8 i opcją base64url bezpieczną dla URL. Działa w przeglądarce, nic nie jest wysyłane.

Jak korzystać z kodera i dekodera Base64

  1. Wybierz, czy chcesz zakodować tekst do Base64 (Koduj), czy zdekodować Base64 z powrotem na tekst (Dekoduj).
  2. Wpisz lub wklej dane w pole tekstowe. Obsługiwane są polskie znaki diakrytyczne, alfabety niełacińskie i emoji.
  3. Jeśli wynik trafi do adresu URL, nazwy pliku albo tokena JWT, włącz opcję Bezpieczny dla URL (base64url), aby otrzymać wariant base64url.
  4. Odczytaj wynik i skopiuj go przyciskiem Kopiuj. Jeśli podczas dekodowania dane nie są poprawnym Base64, zamiast bezsensownych znaków zobaczysz komunikat o błędzie.

Czym jest Base64?

Base64 to sposób zapisu dowolnych bajtów za pomocą zaledwie 64 drukowalnych znaków ASCII: wielkich liter A–Z, małych liter a–z, cyfr 0–9 oraz dwóch symboli + i /. Znak = służy jako dopełnienie na końcu. Kodowanie powstało, bo wiele systemów projektowano do przesyłania tekstu, a nie surowych danych binarnych. Treść e-maili, nagłówki HTTP, dokumenty XML i JSON czy adresy data URL wymagają znaków, które przetrwają kopiowanie, logowanie i transmisję bez zmian.

Algorytm pracuje na grupach trzech bajtów (24 bity) i dzieli je na cztery wartości 6-bitowe, z których każda odpowiada jednemu z 64 znaków. Dlatego wynik w Base64 jest zawsze o około 33% większy od danych wejściowych: każde 3 bajty stają się 4 znakami. Gdy długość danych nie jest wielokrotnością trzech, dopisywany jest jeden lub dwa znaki =, aby długość wyniku była wielokrotnością czterech. Na przykład słowo Hi koduje się jako SGk=, a Hello jako SGVsbG8=.

Tekst, bajty i UTF-8

Base64 koduje bajty, a nie znaki, więc tekst trzeba najpierw zamienić na bajty. To narzędzie używa UTF-8 – kodowania stosowanego przez niemal wszystkie współczesne strony i API. Dzięki temu café daje Y2Fmw6k=, a emoji takie jak 👍 (cztery bajty w UTF-8) koduje się poprawnie i po zdekodowaniu wraca jako to samo emoji. Wiele prostych skryptów opartych na starszej funkcji przeglądarki btoa() zawodzi przy znakach spoza Latin-1, np. przy „ą” czy „ż”; to narzędzie nie ma tego ograniczenia.

Standardowy Base64 a base64url

Standardowy Base64 używa znaków + i /, które mają specjalne znaczenie w adresach URL i ścieżkach plików. Wariant bezpieczny dla URL, czyli base64url, zastępuje + znakiem -, a / znakiem _ i zwykle pomija dopełnienie =. Tego formatu używają tokeny JWT (JSON Web Token), wiele parametrów OAuth i skracacze linków. Włącz opcję base64url, gdy potrzebujesz tego formatu, a zostaw ją wyłączoną dla załączników e-mail, adresów data URL lub plików konfiguracyjnych, które oczekują standardowego Base64.

Base64 to nie szyfrowanie

To najczęstsze nieporozumienie. Base64 jest kodowaniem: nie ma klucza ani sekretu i każdy może je natychmiast odwrócić. Zakodowanie hasła, klucza API czy danych osobowych w Base64 w żaden sposób ich nie chroni. Uwierzytelnianie HTTP Basic przesyła na przykład użytkownik:hasło w Base64 – dlatego wolno go używać tylko przez HTTPS. Jeśli potrzebujesz poufności, użyj prawdziwego szyfrowania (np. AES) albo funkcji skrótu do haseł (np. Argon2 lub bcrypt), a nie Base64.

Prywatność

Całe kodowanie i dekodowanie odbywa się lokalnie w twojej przeglądarce za pomocą JavaScriptu. Wpisany tekst nigdy nie jest wysyłany na serwer, zapisywany ani logowany, więc możesz bezpiecznie podglądać tokeny czy wartości konfiguracyjne. Narzędzie działa wyłącznie na tekście i nie przyjmuje plików.

Najczęściej zadawane pytania

Dlaczego zdekodowany tekst wygląda jak przypadkowe symbole?

Ciąg Base64 najpewniej zawiera dane binarne, np. obraz, skompresowany plik lub zaszyfrowaną treść, a nie tekst. Dekodowanie daje poprawne bajty, ale nie tworzą one sensownego tekstu UTF-8. Może się to też zdarzyć, gdy oryginalny tekst zakodowano w innym zestawie znaków niż UTF-8 (np. Windows-1250).

Dlaczego narzędzie twierdzi, że mój Base64 jest niepoprawny?

Poprawny Base64 zawiera tylko 64 dozwolone znaki i ewentualne dopełnienie =, a jego długość musi pasować do grup po 4 znaki. Typowe przyczyny to przypadkowo skopiowane dodatkowe znaki, ucięty ciąg albo ciąg base64url (z - i _) dekodowany bez włączonej opcji Bezpieczny dla URL (base64url).

Czy mogę zakodować obraz lub inny plik?

Nie. To narzędzie jest przeznaczone tylko do tekstu. Aby osadzić obraz w HTML lub CSS, potrzebujesz narzędzia, które odczyta surowe bajty pliku i utworzy adres data URL.

Czy Base64 nadaje się do przechowywania haseł?

Nie. Każdy zdekoduje Base64 w ułamku sekundy. Hasła należy przechowywać przy użyciu specjalnego, celowo wolnego algorytmu haszującego, takiego jak Argon2, scrypt lub bcrypt.

Czym różni się Base64 z dopełnieniem od Base64 bez dopełnienia?

Dopełnienie = jedynie wyrównuje długość wyniku do wielokrotności czterech i nie niesie żadnej informacji. Większość dekoderów odtworzy dane bez niego. base64url zwykle pomija dopełnienie, bo = jest znakiem zarezerwowanym w adresach URL.