Skip to main content
FastCalc

Base64

Koduj lub dekoduj Base64.

Wszystkie obliczenia wykonywane są lokalnie w przeglądarce. Dane nie są wysyłane na serwer.

Wyniki mają charakter informacyjny. Potwierdź je w innych źródłach.

Obliczenia odbywają się w Twojej przeglądarce. Nic, co wpiszesz, nie jest nigdzie wysyłane.

Jak działa Base64

Base64 zapisuje dowolne dane binarne za pomocą 64 drukowalnych znaków, dzięki czemu mogą przejść przez kanały przyjmujące wyłącznie tekst — treść e-maila, łańcuch w JSON-ie, adres data:, nagłówek HTTP. To format transportowy, a nie zabezpieczenie.

Jak to działa

  • Bierze wejście po trzy bajty (24 bity) i dzieli te 24 bity na cztery grupy po sześć.
  • Każda 6-bitowa grupa to liczba od 0 do 63, używana jako indeks w alfabecie A–Z, a–z, 0–9, + oraz /.
  • Gdy długość wejścia nie jest wielokrotnością trzech, wynik uzupełnia się jednym lub dwoma znakami =, tak aby zawsze był wielokrotnością czterech.
  • Wariant URL-safe zamienia + i / na - oraz _, ponieważ + i / mają własne znaczenie wewnątrz adresu URL.
3 bajty (24 bity) → 4 grupy po 6 bitów → 4 znaki alfabetu
długość wyniku = 4 × ceil(długość wejścia / 3)

Przykład z liczbami

Kodowanie trzyznakowego napisu Hi! — dokładnie jedna pełna grupa, więc dopełnienie nie jest potrzebne.

  1. H = 0x48 = 01001000, i = 0x69 = 01101001, ! = 0x21 = 00100001
  2. sklejamy: 010010000110100100100001
  3. dzielimy na grupy sześciobitowe: 010010 | 000110 | 100100 | 100001
  4. jako liczby: 18, 6, 36, 33
  5. odczytujemy z alfabetu: 18→S, 6→G, 36→k, 33→h

Hi! koduje się jako SGkh. Cztery znaki wyjścia na trzy bajty wejścia — stały stosunek 4:3, przez który Base64 jest około 33% większy od danych, które przenosi.

Jak czytać wynik

  • Base64 to nie szyfrowanie i nie daje żadnej ochrony. Każdy odkoduje to natychmiast — ta strona właśnie to robi. Nigdy nie ukrywaj w ten sposób sekretów.
  • Licz się z około 33% przyrostem plus dopełnienie. Plik 10 MB po zakodowaniu ma około 13,3 MB — dlatego wklejanie dużych obrazów jako adresów data: rozdyma stronę.
  • Znaki = nie niosą danych. Część parserów ich wymaga, część odrzuca; JWT usuwa je całkowicie.
  • Kodowanie działa na bajtach, nie na znakach. Tekst trzeba najpierw zamienić na bajty, a ten enkoder używa UTF-8 — ten sam napis w innym kodowaniu znaków da inny wynik.

Częste pytania

Czy Base64 to rodzaj szyfrowania?
Nie. Szyfrowanie wymaga klucza i ma opierać się atakującemu; Base64 nie wymaga niczego i odwraca się w mikrosekundy. Jeśli znalazłeś ciąg Base64 w pliku konfiguracyjnym, traktuj jego zawartość jako w pełni jawną.
Dlaczego niektóre ciągi Base64 kończą się na = albo ==?
Bo wejście nie było wielokrotnością trzech bajtów. Jeden bajt reszty daje dwa znaki dopełnienia, dwa bajty reszty — jeden. Dopełnienie przywraca długość będącą wielokrotnością czterech.
Czym jest base64url i kiedy go potrzebuję?
To to samo kodowanie, w którym - i _ zastępują + oraz /, dzięki czemu wynik jest bezpieczny w ścieżce lub parametrach URL bez dodatkowego escapowania. Używają go JWT, parametry OAuth i wiele API.