Konwertuj tekst na standardowy ciąg Base64 lub dekoduj poprawny Base64 z powrotem na tekst. Narzędzie nadaje się do małych fragmentów podczas pracy z API, JSON, konfiguracjami, HTML i logami. Base64 służy do przedstawiania danych binarnych za pomocą znaków tekstowych, a nie do ich ochrony.
Co robi Base64
Komputer przechowuje tekst i pliki jako sekwencje bajtów. Nie każdy kanał transmisji dobrze radzi sobie z dowolnymi bajtami, dlatego Base64 przekształca je w ograniczony zestaw drukowalnych znaków ASCII.
W standardowym alfabecie używane są:
- litery łacińskie
A–Zia–z; - cyfry
0–9; - znaki
+i/; - znak
=do uzupełniania na końcu, gdy jest wymagany.
Przykład:
Tekst oryginalny: Polska
Base64: UG9sc2th
Dekodowanie tego ciągu zwraca oryginalną sekwencję bajtów, a następnie narzędzie próbuje wyświetlić ją jako tekst.
Base64 to nie szyfrowanie
Zakodowany ciąg może zdekodować każda osoba lub program. Base64 nie ma klucza tajnego, hasła ani mechanizmu ograniczania dostępu.
Dlatego Base64 nie może być używany jako ochrona dla:
- haseł;
- kluczy API i tokenów;
- danych osobowych;
- prywatnych dokumentów;
- informacji płatniczych;
- tajemnic konfiguracyjnych.
Kodowanie zmienia reprezentację danych, ale nie czyni ich poufnymi. Termin «odszyfrować Base64» jest technicznie nieprecyzyjny: poprawnie jest «zdekodować».
Base64 nie kompresuje danych
Każde trzy oryginalne bajty zwykle przekształcają się w cztery znaki Base64. Dokładny rozmiar wyniku bez podziału wierszy można oszacować następująco:
4 × ceil(liczba oryginalnych bajtów / 3)
Dla wystarczająco dużych danych objętość wzrasta o około jedną trzecią. Dla krótkich ciągów względny wzrost może być większy z powodu zaokrągleń i znaków =.
Base64 stosuje się nie w celu oszczędności miejsca, ale gdy dane muszą być bezpiecznie przesyłane przez format tekstowy. Jeśli rozmiar jest ważny, najpierw stosuje się odpowiednią kompresję, a następnie Base64 – tylko gdy transport rzeczywiście tego wymaga.
Dlaczego kodowanie tekstu ma znaczenie
Base64 koduje bajty, a nie abstrakcyjne litery. Przed kodowaniem tekst musi zostać przekształcony na bajty, najczęściej w UTF-8.
Ten sam ciąg w UTF-8, UTF-16 lub innym kodowaniu da różne wyniki Base64. Podczas dekodowania bajty również muszą być odczytane we właściwym kodowaniu. Jeśli zamiast polskich liter pojawiają się nieczytelne znaki, prawdopodobną przyczyną jest niezgodność kodowań, a nie błąd algorytmu Base64.
Czym Base64url różni się od zwykłego Base64
W adresach URL, ciasteczkach i niektórych tokenach znaki +, / i = mogą być niewygodne. Dlatego RFC 4648 definiuje wariant bezpieczny dla URL – Base64url.
| Standardowy Base64 | Base64url |
|---|---|
+ |
- |
/ |
_ |
uzupełnienie = zwykle zachowywane |
uzupełnienie często pomijane, jeśli jego długość jest znana |
Są to różne warianty alfabetu. Ciągu Base64url nie zawsze można bez przygotowania przekazać do dekodera standardowego Base64. W razie potrzeby zastępuje się znaki i przywraca brakujące uzupełnienie do długości będącej wielokrotnością czterech.
Segmenty JWT są zwykle przedstawiane w Base64url, a nie w standardowym Base64. Ich dekodowanie umożliwia odczytanie nagłówka i ładunku, ale nie potwierdza autentyczności tokena: w tym celu należy zweryfikować podpis kryptograficzny.
Gdzie Base64 jest rzeczywiście stosowany
API tekstowe i formaty danych
Niektóre interfejsy wymagają umieszczenia danych binarnych lub specjalnego ciągu wewnątrz JSON, XML lub innej wiadomości tekstowej. Base64 umożliwia przesyłanie bajtów bez konfliktów ze znakami kontrolnymi transportu.
MIME i poczta elektroniczna
Base64 może być używany do przedstawiania załączników i zawartości w wiadomościach MIME. Format konkretnego e-maila zawiera również nagłówki i zasady podziału wierszy, więc sam ciąg Base64 nie wystarczy do utworzenia pełnej wiadomości.
Data URL
Mały zasób można osadzić w HTML lub CSS:
data:image/png;base64,iVBORw0KGgo...
Przed Base64 podaje się typ MIME. Osadzanie zwiększa rozmiar tekstu i pozbawia zasób zwykłego oddzielnego buforowania, więc nie nadaje się do wszystkich plików.
Podstawowe uwierzytelnianie HTTP
W nagłówku Basic Auth nazwa użytkownika i hasło są łączone i kodowane w Base64. Nie chroni to samych danych uwierzytelniających; bezpieczeństwo transmisji zależy od HTTPS.
Logi i debugowanie
Dekodowanie pomaga zrozumieć zawartość małego fragmentu z odpowiedzi API, dziennika lub konfiguracji. Ale nie należy wklejać produkcyjnych tajemnic ani danych osobowych do zewnętrznych narzędzi online.
Dlaczego ciąg nie jest dekodowany
Najczęstsze przyczyny:
- ciąg jest obcięty;
- używane są znaki Base64url
-i_, a dekoder oczekuje+i/; - brakuje wymaganych znaków uzupełnienia
=; - wewnątrz znajdują się spacje, podziały wierszy lub obce znaki;
- skopiowano prefiks Data URL wraz z danymi;
- oryginalne bajty nie są tekstem;
- po dekodowaniu stosowane jest nieprawidłowe kodowanie tekstowe.
Ścisłe zachowanie dekoderów jest różne: niektóre ignorują spacje lub przywracają uzupełnienie, inne odrzucają ciąg. W przypadku integracji należy kierować się wymaganiami używanej biblioteki i protokołu.
Tekst i pliki to różne zadania
To narzędzie jest przeznaczone do tekstu. Choć każdy plik technicznie można przedstawić w Base64, dla dużego obrazu, archiwum lub dokumentu wygodniej jest użyć kodera plików lub biblioteki programistycznej. Próba otwarcia dowolnych bajtów binarnych jako tekstu może dać nieczytelny wynik lub utratę danych podczas kopiowania.
Bezpieczeństwo podczas korzystania z konwertera online
Nie wstawiaj rzeczywistych haseł, kluczy prywatnych, tokenów dostępowych, ciasteczek autoryzacyjnych, danych osobowych ani poufnych dokumentów. Nawet gdy przetwarzanie jest deklarowane jako wykonywane w przeglądarce, bezpieczną praktyką jest używanie lokalnych narzędzi do danych tajnych i zastępowanie wartości przykładami testowymi.
Najczęściej zadawane pytania
Czy można odtworzyć oryginalny tekst z Base64?
Tak, jeśli ciąg nie jest uszkodzony, użyto prawidłowego wariantu Base64, a oryginalne bajty rzeczywiście reprezentują tekst w znanym kodowaniu.
Dlaczego na końcu znajduje się jeden lub dwa znaki =?
Jest to uzupełnienie, które wyrównuje ostatnią grupę do wymaganej długości. Nie jest częścią oryginalnego tekstu.
Dlaczego dwa programy dają różne ciągi dla tego samego tekstu?
Mogą używać różnych kodowań tekstowych, Base64 lub Base64url, dołączać BOM lub inaczej traktować końcowy podział wiersza.
Czy można przechowywać hasło w Base64?
Nie. Base64 jest łatwo odwracalny i nie jest przeznaczony do bezpiecznego przechowywania haseł. Do przechowywania haseł na serwerze stosuje się specjalne algorytmy haszowania haseł z solą i odpowiednimi parametrami kosztu.
Czy zdekodowany JWT oznacza, że token jest autentyczny?
Nie. Dekodowanie tylko wyświetla dane. Autentyczność i integralność są potwierdzane przez oddzielną weryfikację podpisu zgodnie z zasadami systemu.
Powiązane narzędzia: Generator haseł; Edytor tekstu; Diffchecker.
Oficjalny standard:
- RFC 4648 — Base-N Encodings: https://www.rfc-editor.org/rfc/rfc4648
