fixmint
PL

Base64 wyjaśnione: dlaczego zwiększa dane i jak je odkodować

Autor: · · zaktualizowano 8 listopada 2026 · czas czytania: 5 min

Base64 zapisuje dane binarne jako zwykły tekst, używając 64 znaków: A–Z, a–z, 0–9 oraz + i /. Każde trzy bajty stają się czterema znakami, więc tekst jest o około jedną trzecią dłuższy od danych, które zawiera. Ludzie używają go wtedy, gdy format przyjmuje wyłącznie tekst, na przykład w adresie data URL na stronie internetowej, w polu JSON lub w załączniku e-mail.

Kodowanie i dekodowanie Base64Odczytać lub zrobić ciąg Base64Zrób to za darmo

Dlaczego formaty tekstowe tego potrzebują

Wiele formatów zaprojektowano wyłącznie z myślą o tekście. Treść e-maila, plik JSON i plik CSS mogą bezpiecznie zawierać litery i symbole, ale surowy obraz czy plik zip zawiera wartości bajtów, które niektóre systemy mogłyby zmienić, ucinać lub odczytać jako znaki sterujące. Base64 używa wyłącznie znaków, które każdy system tekstowy przepuszcza bez zmian, dzięki czemu dane docierają nienaruszone. Jest zdefiniowany w RFC 4648.

Base64 to kodowanie, a nie szyfr. Każdy może je odkodować bez klucza, dlatego nigdy nie używaj go do ukrywania haseł ani danych osobowych.

Jak trzy bajty stają się czterema znakami

Weźmy słowo Man, czyli trzy bajty: 77, 97 i 110 w zapisie dziesiętnym. Razem tworzą 24 bity. Podziel je na cztery grupy po sześć bitów, a każda grupa to liczba od 0 do 63, która wskazuje jeden znak alfabetu. Man staje się TWFu.

Sześć bitów pozwala zapisać tylko 64 wartości, więc cztery znaki niosą trzy bajty. Wynik jest zatem o około jedną trzecią większy od danych wejściowych, zanim doliczymy podziały wierszy.

Gdy dane nie dzielą się na trzy bajty, koder dopełnia koniec znakami =. Ma, czyli dwa bajty, staje się TWE=, a M, czyli jeden bajt, staje się TQ==. Dopełnienie informuje dekoder, ile bajtów zawiera ostatnia grupa.

Tekst najpierw trzeba zapisać w UTF-8

Base64 działa na bajtach, a tekst składa się ze znaków. Znak taki jak é lub ✓ zajmuje w UTF-8, kodowaniu używanym w całej sieci, więcej niż jeden bajt. Funkcja przeglądarki btoa() traktuje każdy znak jako jeden bajt, więc zawodzi na znakach spoza podstawowego zakresu łaciny. Wywołanie jej na znaku ptaszka zgłasza błąd InvalidCharacterError.

Rozwiązanie polega na zamianie tekstu na bajty UTF-8, a dopiero potem na zakodowaniu tych bajtów. Fraza héllo ✓ ma w UTF-8 10 bajtów, a jej Base64 to aMOpbGxvIOKckw==. Narzędzie Base64 wykonuje ten krok za ciebie. Przy dekodowaniu odczytuje bajty z powrotem jako UTF-8. Jeśli bajty nie są poprawnym tekstem UTF-8, narzędzie traktuje je jako plik i proponuje pobranie.

Base64 bezpieczny dla URL

Standardowy alfabet zawiera znaki + i /. W adresie URL znak + może oznaczać spację, a / oddziela części ścieżki, więc ciąg Base64 może popsuć link. Wersja bezpieczna dla URL (RFC 4648, sekcja 5) używa zamiast nich - i _, a zwykle pomija dopełnienie =. Stosuj ją, gdy ciąg trafia do adresu URL, nazwy pliku lub tokenu. Dekoder akceptuje obie wersje, z dopełnieniem lub bez.

Jeśli Base64 pochodzi z linku, najpierw odkoduj adres URL. Wartość zakodowaną procentowo w linku trzeba odkodować, zanim da się odczytać jej Base64. Przewodnik po kodowaniu procentowym wyjaśnia zasady dla linków.

Typowym przykładem jest token logowania: JSON Web Token to trzy części w formacie Base64url, oddzielone kropkami – nagłówek, dane i podpis. Dekoder JWT rozdziela je i pokazuje nagłówek oraz dane jako czytelny JSON.

Adresy data URL i obrazy

Adres data URL umieszcza plik bezpośrednio w linku. Jego forma to data:, potem typ medium, potem ;base64, przecinek i dane. Mały obraz staje się więc data:image/png;base64, a po nim zakodowane bajty. Strony internetowe i arkusze stylów akceptują tę formę, co pozwala zaoszczędzić żądanie dla małej ikony.

Koszt to rozmiar. Dane są o około jedną trzecią większe i przesyłane są wewnątrz strony lub arkusza stylów, a nie jako osobny plik, który przeglądarka może zapisać w pamięci podręcznej. Adresów data URL używaj do małych obrazków, a nie do dużych zdjęć. Jeśli zdjęcie jest duże, skompresuj je, zanim je zakodujesz.

Gdy odkodujesz Base64 w narzędziu, sprawdza ono pierwsze bajty danych. Pliki PNG, JPEG, GIF i WebP zaczynają się od znanych sygnatur, więc narzędzie pokazuje podgląd i proponuje pobranie. Adres data URL z typem obrazu również wyświetla się jako grafika.

Jak to zrobić w fixmint

  1. Wybierz Koduj lub Dekoduj nad polem Tekst lub Base64, a następnie wklej tekst lub Base64.
  2. Zaznacz Alfabet bezpieczny dla URL, bez dopełnienia = przy tokenach, nazwach plików i linkach. Dekoder i tak akceptuje obie wersje.
  3. Aby z pliku zrobić adres data URL, upuść plik w obszarze przeciągania i zaznacz Dla plików: wygeneruj adres data:.
  4. Skopiuj wynik. Jeśli odkodowane bajty są plikiem, a nie tekstem, użyj pobierania proponowanego przez narzędzie.

Częste błędy dekodowania

  • Znak jest niedozwolony. Dane wejściowe zawierają znak spoza 64, na przykład cudzysłów ze skopiowanego zdania. Sprawdź, skąd pochodzi tekst. Spację o zerowej szerokości w skopiowanym tekście powoduje ten sam błąd, więc usuń ukryte znaki i spróbuj ponownie. Przewodnik po ukrytych znakach wyjaśnia, skąd się biorą.
  • Długość jest nieprawidłowa. Brakuje jednego znaku lub jest jeden za dużo, co zwykle oznacza, że kopia została ucięta.
  • Podziały wierszy i spacje. E-mail (MIME) zawija Base64 co 76 znaków. Dekoder usuwa spacje i podziały wierszy, więc zawinięty tekst możesz wkleić w takiej postaci, w jakiej jest.
  • Brakujące dopełnienie. Niektóre systemy pomijają znaki =. Dekoder dopisuje je z powrotem.

Przypadki szczególne

  • Wynik odkodowania wygląda na bezsens. Może to być plik, a nie tekst. Zip, PDF lub program po odkodowaniu dają bajty, które nie są czytelnym tekstem. Narzędzie proponuje ich pobranie.
  • Bardzo duże dane. Cały plik jest trzymany w przeglądarce podczas kodowania lub dekodowania, więc bardzo duży plik może działać wolno, a na telefonie może się nie udać.

Szybkie odpowiedzi

Czy Base64 to szyfrowanie?

Nie. To odwracalne kodowanie bez klucza, więc każdy może je odkodować.

Dlaczego mój Base64 jest dłuższy od pliku?

Każde trzy bajty stają się czterema znakami, więc tekst jest o około jedną trzecią większy.

Dlaczego skopiowany ciąg Base64 nie daje się odkodować?

Zwykle podczas kopiowania zgubił się lub dodał się znak, na przykład podział wiersza w złym miejscu albo brakujący ostatni znak. Skopiuj go ponownie ze źródła.

Przetłumaczone z Wersja angielska przy wsparciu AI.

Komentarze

    Brak komentarzy. Bądź pierwszy.

    Twoja ocena (opcjonalnie)

    Twój e-mail nigdy nie jest pokazywany ani zapisywany.

    Okładka: How to Remain Valuable When Intelligence Becomes CheapHow to Remain Valuable When Intelligence Becomes Cheap

    224 strony o przewagach człowieka: ekonomicznych i strategicznych, które pozostają rzadkie, gdy AI potrafi wykonać większość pracy umysłowej.

    $3.84Kup na GumroadPo angielsku