Wyjaśnienie
Jak działa Koder Base64
Base64 to metoda kodowania (zdefiniowana w RFC 4648), która przekształca sekwencje bajtów w sekwencję 64 drukowalnych znaków ASCII (A-Z, a-z, 0-9, +, /). Koduje po 3 bajty (24 bity) na 4 znaki (po 6 bitów) i używa = jako dopełnienia na końcu.
Typowe zastosowania to załączniki e-mail (MIME, RFC 2045), adresy data URL dla obrazów (data:image/png;base64,...), tokeny JWT, certyfikaty PEM, HTTP Basic Authentication, interfejsy JSON i pliki konfiguracyjne. To narzędzie przetwarza jednak tylko tekst UTF-8, a nie pliki ani dowolne dane binarne. Wyjście wymaga czterech znaków na każdą rozpoczętą grupę trzech bajtów wejściowych; dopełnienie wpływa na krótkie wejścia.
Ważne: Base64 nie jest szyfrowaniem. Kodowanie może cofnąć każdy bez klucza. Dane zakodowane w Base64 są tak samo czytelne jak tekst oryginalny — jedynie przedstawione w innym formacie.
Typowe błędy
- Mylenie Base64 z szyfrowaniem: Base64 nie zapewnia żadnego bezpieczeństwa. Każdy może zdekodować zakodowany tekst bez klucza. Dla prywatności używaj prawdziwego szyfrowania (AES, ChaCha20).
- Zapominanie o znakach niebezpiecznych dla URL: Standardowy Base64 zawiera + i /, które mają specjalne znaczenie w URL. Dla kontekstów URL używaj Base64URL (z - i _) lub kodowania URL.
- Mylenie znaków tekstu z bajtami: Znaki Unicode mogą zajmować kilka bajtów UTF-8; dlatego długości wyjścia nie można wyprowadzić z liczby znaków JavaScript.
- „Ukrywanie” danych wrażliwych w Base64: Kodowanie haseł, kluczy API lub danych osobowych w Base64 nie daje ochrony. W logach, adresach URL czy konfiguracjach są łatwe do odczytania.
Ograniczenia tego narzędzia
- Brak prywatności — Base64 jest czytelny, nie zaszyfrowany.
- Cztery znaki wyjścia na każdą rozpoczętą grupę trzech bajtów wejściowych; dopełnienie wpływa na krótkie wejścia.
- Tylko wejście/wyjście tekstowe — bez kodowania plików (obrazy, PDF itp.).
- Brak trybu Base64URL (RFC 4648 §5) — tylko standardowy Base64 z + i /.
- Dekodowanie danych binarnych (nie UTF-8) kończy się niepowodzeniem, ponieważ obsługiwane jest tylko wyjście tekstowe.
Źródła
- RFC 4648: The Base16, Base32, and Base64 Data Encodings. IETF, 2006. Definiuje standardowy Base64 i Base64URL.
- RFC 2045: MIME Part One — Format of Internet Message Bodies. Definiuje Base64 dla załączników e-mail (Content-Transfer-Encoding).
- WHATWG HTML Standard: Definicja btoa() i atob() dla konwersji Base64 w przeglądarce.
- WHATWG Encoding Standard: Definicja TextEncoder, UTF-8 i krytycznego (fatal) dekodowania TextDecoder.