Czym jest Base64 — w jednym akapicie
Base64 to sposób przedstawiania danych binarnych — bajtów, które niekoniecznie są drukowalnym tekstem — przy użyciu tylko 64 znaków ASCII, które obsłuży każdy system: A-Z, a-z, 0-9 oraz + i /. To nie jest szyfrowanie. To nie jest kompresja. To translacja, która zamienia binaria w coś, co bezpiecznie wstawisz w URL, treść e-maila, ciąg JSON albo w dowolne miejsce oczekujące zwykłego tekstu. Dekodowanie odwraca tę translację.
Każde trzy bajty wejścia stają się czterema znakami wyjścia, dopełnianymi =, by długość była wyrównana. Dlatego ciąg zakodowany w Base64 jest zawsze 33–37% dłuższy niż oryginał.
Jak działa koder/dekoder Microapp
Wklej dowolny tekst w pole wejściowe, a zakodowana wersja pojawi się natychmiast w polu wyjściowym. Konwersja odbywa się w Twojej przeglądarce — tekst nigdy nie dotyka naszych serwerów. Aby zdekodować, przełącz kierunek i wklej swój ciąg Base64; oryginalny tekst się pojawi.
Narzędzie poprawnie obsługuje wejście UTF-8, co ma większe znaczenie, niż się ludziom wydaje. Natywne JavaScriptowe btoa() psuje się na Unicode (spróbuj zakodować „café” — wyrzuca błąd). Koder Microapp najpierw zamienia dane na bajty UTF-8, potem stosuje Base64, więc emoji, znaki diakrytyczne i nieliterowe alfabety przechodzą tam i z powrotem bez problemu.
Hello!Krok 1: bajty to
72 101 108 108 111 33 (ASCII).Krok 2: przegrupuj w 6-bitowe kawałki:
010010 000110 010101 101100 011011 000110 111100 100001.Krok 3: każdy 6-bitowy kawałek mapuje się na znak Base64:
SGVsbG8h. Gotowe.
Do czego używa się Base64
Osadzanie obrazów bezpośrednio w HTML lub CSS przez URL-e data:image/png;base64,... — obraz mieszka wewnątrz strony, bez osobnego żądania HTTP. Przydatne dla małych ikon albo dokumentów jednostronicowych, które muszą działać offline.
Nagłówki autoryzacji. Basic auth w HTTP dosłownie koduje w Base64 username:password i wysyła. Sam w sobie nie jest bezpieczny — to tylko cienka warstwa zaciemnienia na drucie — dlatego w praktyce Basic auth łączy się z HTTPS.
Załączniki e-mail. Specyfikacja MIME używa Base64 dla wszystkich binarnych załączników, bo protokół SMTP historycznie obsługiwał tylko 7-bitowe ASCII. Nawet nowoczesne e-maile ciągle kodują załączniki w ten sposób.
Payloady JSON przenoszące dane binarne. API przyjmujące pliki w treści JSON zwykle chcą ich w Base64, żeby zmieściły się w polu tekstowym.
Czym Base64 NIE jest
To nie jest szyfrowanie. Każdy zdekoduje ciąg Base64 dwiema linijkami kodu albo tym narzędziem. Jeśli „kodujesz wrażliwe dane” samym Base64, dane nie są chronione — są tylko przebrane. Użyj prawdziwego szyfrowania (AES, RSA), gdy potrzebujesz poufności.
To nie jest kompresja. Base64 zawsze powiększa dane, nigdy ich nie zmniejsza. 33% narzut to cena pozostania w ASCII.
To nie jest hash. Hash jest jednokierunkowy (nie odzyskasz wejścia z wyjścia). Base64 jest w pełni odwracalne — o to chodzi.
Częste pułapki
Base64 URL-safe. Standardowy alfabet używa + i / — oba mają znaczenie wewnątrz URL-i i wymagają procentowego kodowania. Wariant URL-safe zamienia je na - i _ i porzuca wypełnienie =. Jeśli ciąg Base64 z JWT albo tokenu OAuth nie chce się zdekodować, sprawdź, czy to wariant URL-safe.
Złamania linii. Niektóre wyjścia Base64 (zwłaszcza MIME) zawierają złamania linii co 76 znaków. Większość dekoderów je usuwa, ale ścisły dekoder może odrzucić takie wejście. Dekoder Microapp usuwa białe znaki przed dekodowaniem.
Wypełnienie. Długość prawidłowego ciągu Base64 jest zawsze wielokrotnością 4. Ciągi kończące się == miały 1 bajt wejścia w ostatniej grupie; = oznaczało 2 bajty; brak wypełnienia oznaczał 3 bajty. Niektóre implementacje pomijają wypełnienie — większość dekoderów sobie z tym radzi, ale ścisłe mogą się pomylić.
Powiązane narzędzia
Jeśli chcesz zakodować znaki konkretnie do URL-a (nie dowolne binaria), wypróbuj URL Encoder/Decoder. Do jednokierunkowych skrótów, których nie da się odwrócić, użyj MD5 Hash Generator lub SHA-256 Generator. Aby zakodować specjalne znaki HTML, takie jak < i >, jako encje, użyj HTML Encoder/Decoder.