Konwertery

Base64: koder i dekoder online, także base64url i pliki

Zakoduj tekst lub plik w Base64 albo zdekoduj Base64 z powrotem, z obsługą polskich znaków (UTF-8), wariantu base64url i adresów data:.

Obliczenia wykonuje Twoja przeglądarka. Wpisane dane nie są wysyłane na serwer.

Co kodujesz

Jak działa kodowanie Base64

Base64 opisuje RFC 4648. Dane dzieli się na grupy po 24 bity, czyli 3 bajty, a każdą grupę zapisuje jako 4 znaki. Każdy znak niesie 6 bitów i pochodzi z 64-znakowego alfabetu: litery A–Z, a–z, cyfry 0–9 oraz znaki + i /. Gdy na końcu danych zostaje niepełna grupa, wynik jest uzupełniany znakiem =. Tak wyglądają wektory testowe z rozdziału 10 RFC 4648:

TekstBase64
fZg==
foZm8=
fooZm9v
foobZm9vYg==
foobaZm9vYmE=
foobarZm9vYmFy

Każde 3 bajty stają się 4 znakami, więc dane po zakodowaniu są o około 33% dłuższe. Base64 to kodowanie, a nie szyfrowanie: reguła jest publiczna i nie wymaga klucza.

Base64 i base64url

Rozdział 5 RFC 4648 definiuje wariant „URL and filename safe”, w którym znaki + i / zastępują - i _. Ten wariant można bezpiecznie umieszczać w adresach URL i nazwach plików. RFC 7515, opisujący podpisy JSON Web Signature używane w tokenach JWT, definiuje base64url jako ten alfabet bez końcowych znaków = i bez podziałów wierszy. Taki wynik daje opcja „Wariant URL-safe” w koderze.

Dekoder rozpoznaje oba alfabety i przyjmuje dane z dopełnieniem albo bez niego. Pomija spacje i podziały wierszy, więc przyjmie też Base64 łamane na linie. Inne znaki spoza alfabetu odrzuca, zgodnie z rozdziałem 3.3 RFC 4648.

Polskie znaki i funkcja btoa

Wbudowana w przeglądarki funkcja btoa() według MDN zgłasza błądInvalidCharacterError, gdy tekst zawiera znak, który nie mieści się w jednym bajcie, np. ą albo ł. MDN zaleca najpierw zamienić tekst na bajty UTF-8 przezTextEncoder. Ten koder robi to automatycznie, więc „zażółć” zakodujesz bez błędu, a po zdekodowaniu dostaniesz te same znaki.

Pliki i adresy data:

Zakodowany plik można osadzić bezpośrednio w HTML lub CSS jako adres data: opisany w RFC 2397. Ma on postać data:[typ];base64,dane, np.data:image/png;base64,iVBORw0…. Gdy typ zostanie pominięty, RFC 2397 przyjmujetext/plain;charset=US-ASCII. Generator bierze typ pliku z przeglądarki, a przy dekodowaniu rozpoznaje popularne formaty (PNG, JPEG, GIF, WebP, PDF, ZIP) po pierwszych bajtach i pokazuje podgląd obrazów. Możesz też wkleić do pola Base64 cały adres data:, a dekoder sam oddzieli typ od danych.

Najczęstsze pytania

Czy Base64 to szyfrowanie?

Nie. Base64 to kodowanie: zamienia bajty na znaki z 64-znakowego alfabetu według publicznej reguły z RFC 4648. Każdy może je odwrócić bez klucza.

Dlaczego ciąg Base64 kończy się znakiem =?

Base64 koduje dane w grupach po 3 bajty. Gdy na końcu zostają 1 lub 2 bajty, RFC 4648 uzupełnia wynik jednym lub dwoma znakami =, żeby długość była wielokrotnością 4.

Czym różni się base64url od zwykłego Base64?

Base64url z rozdziału 5 RFC 4648 używa znaków - i _ zamiast + i /, które mają specjalne znaczenie w adresach URL i nazwach plików. W tokenach JWT pomija się też końcowe znaki =.

O ile Base64 zwiększa rozmiar danych?

Każde 3 bajty stają się 4 znakami, więc zakodowane dane są o około 33% dłuższe. Plik o rozmiarze 300 KB zajmie po zakodowaniu około 400 KB.

Źródła

  1. RFC 4648: The Base16, Base32, and Base64 Data Encodings, IETF (2006)
  2. RFC 7515: JSON Web Signature (JWS), IETF (2015)
  3. RFC 2397: The "data" URL scheme, IETF (1998)
  4. Window: btoa() method, MDN
  • Konwertery

    Timestamp Unix

    Zamień znacznik czasu Unix (sekundy, milisekundy, mikro- lub nanosekundy) na datę w dowolnej strefie czasowej albo datę na znacznik czasu.

  • Konwertery

    Kodowanie URL

    Zakoduj tekst do bezpiecznej postaci w adresie URL (np. spacja jako %20, ą jako %C4%85) albo zdekoduj zakodowany adres i rozłóż go na części oraz parametry.

  • Konwertery

    Systemy liczbowe

    Wpisz liczbę w dowolnym z czterech systemów, a konwerter pokaże ją w pozostałych, także dla bardzo dużych liczb i w kodzie uzupełnień do dwóch dla 8–64 bitów.

  • Konwertery

    Tester regex

    Sprawdź wyrażenie regularne na własnym tekście: podświetlone dopasowania, grupy i grupy nazwane, podmiana z $1 i ochrona przed zawieszeniem przy wolnych wzorcach.

Niezbędne (zawsze włączone). Pamięć przeglądarki przechowuje wybrany motyw, polubione artykuły i Twoją decyzję o zgodzie. Nie używamy do tego plików cookies.