Encoder / Decoder Base64
Koduj tekst do Base64 albo dekoduj Base64 z powrotem na tekst. Bezpieczny dla UTF-8, wariant base64url.
Wpisz dane powyżej, aby zobaczyć wynik.
Co Base64 właściwie robi
Base64 zamienia dowolne bajty w 64 znaki ASCII (A–Z, a–z, 0–9 plus dwa dodatkowe). Trzy bajty wejścia stają się czterema znakami wyjścia, więc wynik jest mniej więcej 33% większy od wejścia. To kodowanie, nie szyfrowanie — każdy może to zdekodować.
Kiedy używać Base64
- Wstawianie małych binarnych danych w formaty tekstowe: data URI, wartości JSON, zmienne środowiskowe, stringi YAML.
- Kodowanie binarnych tokenów (sygnatury, klucze, hashe) do umieszczenia w URL-ach, headerach albo cookies.
- Załączniki maili i SMIME — historyczne, ale wciąż żywe.
Standard vs base64url
- Standard (RFC 4648 §4) używa
+,/,=. OK w mailu, wartościach JSON, większości XML. - base64url (RFC 4648 §5) używa
-,_i zwykle pomija końcowy padding=. Używany w JWT, tokenach OAuth i wszędzie tam, gdzie wartość siedzi w URL-u, gdzie+///=wymagałyby dodatkowego escape'owania.
Częste pułapki
- Nie myl tego z szyfrowaniem. Base64 jest odwracalny przez każdego. Jeśli dane są wrażliwe — najpierw je zaszyfruj.
- UTF-8 robi tu poprawny round-trip — znaki spoza ASCII (é, 你好, 🚀) idą przez
TextEncoder/TextDecoder, nie bezpośrednio przezbtoa/atob. Naiwnebtoa(str)w JavaScripcie wywala się na znakach niełacińskich. - Padding — standardowy Base64 zawsze kończy się 0/1/2 znakami
=w zależności od długości wejścia. base64url często go pomija. Dekodery wymagające paddingu odrzucają dane bez paddingu; to narzędzie sam dokleja go przy dekodowaniu, jeśli go brakuje. - Białe znaki w środku zakodowanego stringa — ten dekoder usuwa spacje i końce linii (typowe po copy-paste), ale niektóre biblioteki tego nie robią, więc przekoduj zanim wrzucisz to do takiej.