Base64 w jednym zdaniu
Base64 to zdefiniowane w RFC 4648 kodowanie danych binarnych do postaci tekstowej, które każde 3 bajty danych przedstawia jako 4 znaki z alfabetu A–Z, a–z, 0–9, + i /.
Po co istnieje Base64
Wiele systemów powstało z myślą wyłącznie o tekście – to m.in. poczta e-mail (SMTP), JSON, XML, atrybuty HTML, adresy URL i terminale. Surowe dane binarne, takie jak obrazy czy pliki PDF, mogą zawierać bajty, które te systemy zmieniłyby lub odrzuciły. Base64 zamienia dane na bezpieczne, drukowalne znaki, dzięki czemu docierają one do celu w niezmienionej postaci.
Jak działa kodowanie Base64 – krok po kroku
- Weź bajty wejściowe:
M,a,n= 77, 97, 110. - Zapisz je jako 24 bity:
01001101 01100001 01101110. - Podziel bity na cztery grupy po 6 bitów:
010011 010110 000101 101110= 19, 22, 5, 46. - Odszukaj każdą liczbę w alfabecie: 19 =
T, 22 =W, 5 =F, 46 =u.
W ten sposób Man zamienia się w TWFu. Dekodowanie polega po prostu na wykonaniu tych kroków w odwrotnej kolejności.
Alfabet Base64
| Wartości | Znaki |
|---|---|
| 0–25 | A–Z |
| 26–51 | a–z |
| 52–61 | 0–9 |
| 62 | + (wariant URL-safe: -) |
| 63 | / (wariant URL-safe: _) |
| dopełnienie | = |
Co oznacza dopełnienie =
Gdy długość danych wejściowych nie jest wielokrotnością 3, ostatnia grupa zostaje uzupełniona i oznaczona znakiem =: Ma zamienia się w TWE=, a M w TQ==. W poprawnym ciągu dopełnienie nigdy nie pojawia się w środku.
Odmiany Base64
- Standardowy Base64 (RFC 4648) – opisany wyżej alfabet z dopełnieniem
=. - Base64URL – używa znaków
-i_, często bez dopełnienia; stosowany w adresach URL, nazwach plików i tokenach JWT. - MIME Base64 – standardowy alfabet z łamaniem wierszy co 76 znaków, używany w poczcie e-mail.
Base64 to nie szyfrowanie
Base64 niczego nie ukrywa: każdy może go natychmiast zdekodować. Często bywa mylony z zabezpieczeniem, bo wynik wygląda na losowy ciąg znaków. Do ochrony poufnych danych używaj prawdziwego szyfrowania, np. AES, a Base64 – wyłącznie do przesyłania zaszyfrowanych bajtów w postaci tekstu.
Narzut rozmiaru
Zakodowany ciąg dla n bajtów ma długość 4 × ⌈n / 3⌉ znaków, czyli jest o około 33% dłuższy od oryginału. Przy łamaniu wierszy MIME rośnie o kolejne 2–3%.
Gdzie używa się Base64
- Załączniki e-mail (MIME)
- Data URI dla obrazów i czcionek w HTML i CSS
- Pola binarne w API opartych na JSON i XML
- Tokeny JWT (JSON Web Token) i OAuth
- Nagłówki uwierzytelniania HTTP Basic
- Certyfikaty PEM i klucze SSH
- Sekrety Kubernetes i pliki konfiguracyjne
Najczęściej zadawane pytania
Czy Base64 to to samo co szyfrowanie lub haszowanie?
Nie. Odwrócenie szyfrowania wymaga klucza, haszowania nie da się odwrócić w ogóle, a Base64 może zdekodować każdy.
Skąd nazwa Base64?
Stąd, że kodowanie korzysta z alfabetu liczącego 64 znaki, więc każdy znak niesie 6 bitów informacji (26 = 64).
Jak rozpoznać, że ciąg jest zakodowany w Base64?
Zawiera wyłącznie znaki A–Z, a–z, 0–9, +, / (lub - i _), jego długość jest zwykle wielokrotnością 4 i może kończyć się jednym lub dwoma znakami =. Najszybciej sprawdzisz to, wklejając go do naszego dekodera.
Ostatnia aktualizacja: