Menu

Koder / dekoder Base64

Błyskawicznie koduj i dekoduj ciągi znaków i pliki w Base64.

Autor: Nethanel Bar, Co-founder & CEO

Ostatnia aktualizacja

Chcesz naprawdę nauczyć się programować?

Coddy uczy cię przez pisanie prawdziwego kodu w przeglądarce: interaktywne lekcje, natychmiastowa informacja zwrotna i pomoc AI, gdy utkniesz.

Czym jest Base64?

Base64 to schemat kodowania, który zapisuje dane binarne za pomocą 64 drukowalnych znaków. Programiści sięgają po niego zawsze, gdy system obsługujący tylko tekst musi przenieść bajty: małe obrazy osadzone w HTML, tokeny, załączniki e-mail, adresy data URL, sekrety do skopiowania z logów i pola JSON przechowujące binarne bloby.

Base64 to *kodowanie*, a nie szyfrowanie. Zdekodowanie ciągu Base64 zwykle od razu ujawnia oryginalną treść, więc nigdy nie należy traktować go jako zabezpieczenia. Wszystko w Base64 jest w praktyce publiczne, chyba że zostało zaszyfrowane *przed* zakodowaniem.

Pod spodem Base64 bierze 3 bajty (24 bity) i zapisuje je jako 4 znaki ze stałego, 64-znakowego alfabetu (od A do Z, od a do z, od 0 do 9, +, /). Gdy długość danych nie jest wielokrotnością 3, koder dodaje na końcu jeden lub dwa znaki = jako dopełnienie. Dlatego ciągi Base64 często kończą się znakiem =.

Czego nauczysz się, używając Base64

  • Kodowanie zmienia sposób zapisu danych, ale ich nie ukrywa ani nie chroni: każdy może je zdekodować.
  • Wynik Base64 jest mniej więcej 4/3 rozmiaru oryginalnych bajtów, więc jest wygodny, ale nie oszczędza miejsca.
  • Znaki dopełnienia takie jak = uzupełniają ostatnią grupę 4 znaków i są czymś normalnym w wielu ciągach Base64.
  • Istnieją dwa pokrewne warianty: standardowy Base64 (używa + i /) oraz Base64URL (używa - i _, więc jest bezpieczny w adresach URL i tokenach JWT).

Jak krok po kroku kodować i dekodować Base64

  1. Wybierz kierunek

    Wybierz Koduj, jeśli masz zwykły tekst lub plik i chcesz dostać Base64. Wybierz Dekoduj, jeśli masz ciąg Base64 i chcesz odzyskać oryginalną treść.

  2. Wklej dane lub upuść plik

    Wklej tekst do pola albo przeciągnij plik (obraz, PDF, cokolwiek) na strefę upuszczania. Pliki są zamieniane na adres data: gotowy do osadzenia w HTML lub CSS.

  3. Odczytaj wynik

    Wynik kodowania to ciąg Base64. Wynik dekodowania to oryginalny tekst, a jeśli na wejściu był plik, odzyskane bajty pokazane jako link do pobrania.

  4. Skopiuj wynik

    Kliknij przycisk kopiowania, aby umieścić wynik w schowku. Wszystko działa w przeglądarce, więc dane nigdy nie opuszczają twojego komputera.

Base64: ściąga

Elementy, które będziesz spotykać przy pracy z Base64, zdefiniowane w RFC 4648.

ElementZnaczeniePrzykład
Alfabet64 znaki używane przez standardowy Base64A–Z, a–z, 0–9, +, /
Alfabet bezpieczny dla URLUżywany w tokenach JWT i adresach URLA–Z, a–z, 0–9, -, _
Dopełnienie (padding)Uzupełnia ostatnią grupę, gdy długość nie jest wielokrotnością 3= lub ==
Rozmiar grupyBajty na zakodowany fragment → 4 znaki wyjściowe3 bajty → 4 znaki
Wzrost długościWynik jest o ~33% większy niż dane wejściowe100 B → 136 znaków
Data URLOsadzenie pliku bezpośrednio w HTML/CSSdata:image/png;base64,...

Przykłady Base64 do wypróbowania

Zdekoduj proste słowo

Zakodowane

SGVsbG8gV29ybGQ=

Zdekodowane

Hello World

Końcowy znak = to dopełnienie, bo Hello World ma 11 bajtów, a to nie jest wielokrotność 3. Dekodowanie zawsze poprawnie je usuwa.

Zakoduj mały obiekt JSON

Oryginał
{"role":"student","active":true}
Base64

eyJyb2xlIjoic3R1ZGVudCIsImFjdGl2ZSI6dHJ1ZX0=

Tokeny JWT kodują każdy segment dokładnie w ten sposób, dlatego ich ładunek zwykle zaczyna się od eyJ, czyli zapisu Base64 dla {".

Rozpoznaj adres data URL

Data URL

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNgAAIAAAUAAen8GVAAAAAASUVORK5CYII=

Prefiks określa typ nośnika (image/png) i kodowanie (base64). Wszystko po przecinku to zawartość pliku. Przydatne dla malutkich obrazów, które ładują się razem ze stroną.

Porównaj alfabet standardowy i bezpieczny dla URL

Standardowy

Pj4/Pyc+Pg==

URL-safe

Pj4_Pyc-Pg

Base64 bezpieczny dla URL zamienia + na - i / na _, dzięki czemu wartość może znaleźć się w adresie URL bez dodatkowego escape'owania. Tokeny JWT używają tego wariantu.

Częste błędy przy Base64

  • Nazywanie Base64 "szyfrowaniem". Każdy może go zdekodować bez hasła i klucza.
  • Zapominanie, że tekst Unicode trzeba zamienić na bajty UTF-8 *przed* kodowaniem Base64, bo inaczej znaki spoza ASCII (np. polskie litery) nie wrócą poprawnie.
  • Ręczne usuwanie dopełnienia = i przekazywanie wyniku do rygorystycznego dekodera, który go oczekuje. (Dekodery URL-safe zwykle akceptują brak dopełnienia, standardowe mogą nie akceptować).
  • Osadzanie dużych obrazów jako Base64 w CSS lub HTML, gdy zwykły adres pliku byłby mniejszy, szybszy i łatwiejszy do cache'owania.

Base64: FAQ

Czym jest kodowanie Base64?
Base64 to kodowanie, które zapisuje dane binarne jako drukowalny tekst przy użyciu 64-znakowego alfabetu. Używa się go wszędzie tam, gdzie bajty muszą przejść przez system obsługujący tylko tekst: API, JSON, tokeny JWT, e-mail, adresy data URL.
Jak działa Base64?
Base64 bierze 3 bajty wejściowe (24 bity) i dzieli je na cztery 6-bitowe grupy. Każda grupa 6-bitowa odpowiada jednemu z 64 znaków. Jeśli długość danych nie jest wielokrotnością 3 bajtów, dodawany jest jeden lub dwa znaki = jako dopełnienie.
Jak zdekodować ciąg Base64?
Wklej ciąg do dekodera Base64. Wynikiem jest oryginalny tekst lub plik. W kodzie większość języków ma wbudowaną funkcję: atob() w przeglądarkach, Buffer.from(str, 'base64') w Node.js, base64.b64decode() w Pythonie.
Czy Base64 jest bezpieczny?
Nie. Base64 to kodowanie, a nie szyfrowanie. Służy do zapisu i przesyłania danych, a nie do ich ukrywania. Jeśli potrzebujesz poufności, najpierw zaszyfruj dane, a potem zakoduj szyfrogram w Base64.
Dlaczego Base64 czasem kończy się znakiem =?
= to dopełnienie. Base64 zwraca 4 znaki na każde 3 bajty danych. Gdy długość danych nie jest wielokrotnością 3, dodawany jest jeden lub dwa znaki =, żeby długość wyniku pozostała wielokrotnością 4.
Czy Base64 może kodować obrazy?
Tak. Bajty obrazu można zakodować w Base64 i wstawić do adresu data:image/png;base64,..., dzięki czemu obraz jest osadzony bezpośrednio w HTML, CSS lub JSON bez osobnego żądania sieciowego.

Dowiedz się więcej

Inne narzędzia dla programistów

Ilustracja języków programowania w Coddy

Ucz się programowania z Coddy

ZACZNIJ