Czym jest Base64 i do czego służy
Co robi ten konwerter
Wklejasz tekst i mówisz, co z nim zrobić: zakodować do Base64 albo zdekodować z powrotem. Konwerter pokazuje wynik, jego długość i to, o ile ciąg urósł lub się zmniejszył.
Oba kierunki to ta sama strona i ta sama karta. Zmienia się tylko to, co stoi na liście „Co zrobić”.
Base64 to nie szyfrowanie
Base64 niczego nie ukrywa. To sposób zapisania dowolnych bajtów dwudziestoma sześcioma wielkimi literami, dwudziestoma sześcioma małymi, dziesięcioma cyframi i dwoma znakami specjalnymi – czyli zestawem, który na pewno przetrwa przesłanie przez systemy obsługujące tylko tekst: pocztę, JSON, XML, atrybuty HTML.
Zdekodować Base64 może każdy i natychmiast, bez żadnego klucza. Hasło zapisane w Base64 to hasło zapisane jawnie, tylko mniej oczywiste na pierwszy rzut oka.
Dlaczego wynik jest dłuższy od oryginału
Base64 bierze trzy bajty i zapisuje je czterema znakami. Dlatego ciąg rośnie mniej więcej o jedną trzecią: 100 bajtów staje się 136 znakami razem z dopełnieniem. To cecha samego formatu, a nie tego konwertera.
W drugą stronę jest odwrotnie: zdekodowany tekst jest zawsze krótszy od Base64, z którego go wydobyto.
Dwa alfabety: standardowy i URL-safe
Standardowy Base64 (RFC 4648) kończy alfabet znakami + i /, a brak do wielokrotności czterech uzupełnia znakiem =.
Wszystkie trzy znaki mają osobne znaczenie w adresie strony i w nazwie pliku, więc tam psują ciąg. Na takie przypadki standard opisuje drugi alfabet: - zamiast +, _ zamiast / i bez dopełnienia. To właśnie URL-safe.
Alfabet wybierasz ty. Jeśli wkleisz ciąg URL-safe przy alfabecie standardowym, konwerter odpowie błędem i podpowie, że jest drugi wariant – ale nie przełoży jednego alfabetu na drugi po cichu. Cichy przekład oznaczałby, że dostajesz bajty z ciągu, który uważałeś za standardowy, i nigdzie o tym nie napisano.
Dopełnienie = na wejściu nie jest wymagane
Na wyjściu alfabet standardowy zawsze dopełnia ciąg do długości podzielnej przez cztery, a URL-safe nie dopełnia nigdy.
Na wejściu przyjmowane są oba warianty. Zgubiony ogon z = to najczęstsze, co spotyka Base64 w drodze, i nie ma powodu z tego względu odmawiać: nie powstaje tu żadna niejednoznaczność.
Spacje i znaki nowej linii
Base64 z maila, z certyfikatu PEM czy z terminala zwykle jest podzielony na wiersze po 64 lub 76 znaków. Przy dekodowaniu spacje, tabulatory i znaki nowej linii są usuwane – nie są częścią danych.
Ze zwykłym tekstem tak się nie robi. Spacja na początku wiersza to treść, a zakodowanie jej razem z resztą jest właśnie zadaniem.
Gdy wynik nie jest tekstem
Base64 przenosi dowolne bajty, nie tylko tekst. Ciąg może zdekodować się bez zarzutu i okazać się obrazem, archiwum albo tekstem w innym kodowaniu.
W takim przypadku konwerter mówi o tym wprost: ile bajtów wyszło i że nie są tekstem UTF-8. Nie pokazuje ich z „kwadracikami” zamiast znaków i nie udaje, że coś przeczytał. To konwerter tekstu, a uczciwa odpowiedź to nazwać granicę.
Limit długości
Pole przyjmuje do 2000 znaków. Zapytanie idzie paskiem adresu, a zbyt długi adres odrzuca już serwer, a nie strona – dlatego granica stoi tutaj, żeby zamiast cichego błędu zobaczyć zdanie.
Częste pytania o Base64
Czy Base64 to szyfrowanie?
Nie. To kodowanie: przekształcenie bez klucza i bez sekretu. Zdekodować może każdy w sekundę.
Dlaczego na końcu ciągu są =?
To dopełnienie. Base64 działa blokami po trzy bajty; jeśli w ostatnim bloku są jeden lub dwa bajty, ciąg uzupełnia się jednym lub dwoma znakami = do długości podzielnej przez cztery.
Dlaczego mój ciąg się nie dekoduje?
Najczęstsze przyczyny są trzy: wybrano zły alfabet (ciąg URL-safe przy standardowym), w ciągu jest znak spoza alfabetu albo długość się nie zgadza nawet przy braku dopełnienia.
Czy można zakodować obraz?
Tym konwerterem – nie, przyjmuje tekst z pola. Zdekodować Base64 obrazu można, ale wynikiem będzie komunikat, że to nie tekst, i liczba bajtów.
Czy polskie litery zajmują więcej miejsca?
Tak. W UTF-8 litery takie jak ą, ę czy ś to dwa bajty, a nie jeden. Dlatego „Cześć” to pięć znaków i siedem bajtów, a Base64 liczy właśnie bajty.
Czy odpowiedź zmienia się z czasem?
Nie. Konwerter nie patrzy ani na zegar, ani do sieci: to samo zapytanie zawsze daje tę samą odpowiedź.
Konwerter Base64 online – koduj i dekoduj
Base64 pojawia się tam, gdzie dane trzeba przeprowadzić przez kanał przeznaczony dla tekstu: w mailach, w tokenach, w ustawieniach, w adresach data:. Ten konwerter przekłada ciąg w obie strony i podaje alfabet, którym to robi.
Jak korzystać
Wklej tekst lub Base64 do pola, wybierz kierunek i alfabet – karta z odpowiedzią pojawi się sama. Nic nie trzeba klikać.