Zdekoduj proste słowo
SGVsbG8gV29ybGQ=
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.
Błyskawicznie koduj i dekoduj ciągi znaków i pliki w Base64.
Ostatnia aktualizacja
Coddy uczy cię przez pisanie prawdziwego kodu w przeglądarce: interaktywne lekcje, natychmiastowa informacja zwrotna i pomoc AI, gdy utkniesz.
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 =.
= uzupełniają ostatnią grupę 4 znaków i są czymś normalnym w wielu ciągach Base64.+ i /) oraz Base64URL (używa - i _, więc jest bezpieczny w adresach URL i tokenach JWT).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ść.
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.
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.
Kliknij przycisk kopiowania, aby umieścić wynik w schowku. Wszystko działa w przeglądarce, więc dane nigdy nie opuszczają twojego komputera.
Elementy, które będziesz spotykać przy pracy z Base64, zdefiniowane w RFC 4648.
| Element | Znaczenie | Przykład |
|---|---|---|
| Alfabet | 64 znaki używane przez standardowy Base64 | A–Z, a–z, 0–9, +, / |
| Alfabet bezpieczny dla URL | Używany w tokenach JWT i adresach URL | A–Z, a–z, 0–9, -, _ |
| Dopełnienie (padding) | Uzupełnia ostatnią grupę, gdy długość nie jest wielokrotnością 3 | = lub == |
| Rozmiar grupy | Bajty na zakodowany fragment → 4 znaki wyjściowe | 3 bajty → 4 znaki |
| Wzrost długości | Wynik jest o ~33% większy niż dane wejściowe | 100 B → 136 znaków |
| Data URL | Osadzenie pliku bezpośrednio w HTML/CSS | data:image/png;base64,... |
SGVsbG8gV29ybGQ=
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.
{"role":"student","active":true}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 {".
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ą.
Pj4/Pyc+Pg==
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.
= i przekazywanie wyniku do rygorystycznego dekodera, który go oczekuje. (Dekodery URL-safe zwykle akceptują brak dopełnienia, standardowe mogą nie akceptować).= jako dopełnienie.atob() w przeglądarkach, Buffer.from(str, 'base64') w Node.js, base64.b64decode() w Pythonie.=?= 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.data:image/png;base64,..., dzięki czemu obraz jest osadzony bezpośrednio w HTML, CSS lub JSON bez osobnego żądania sieciowego.