Czym Jest Base64?
Base64 to sposób zapisu dowolnych danych, czy to tekstu, obrazów, czy całych plików, za pomocą tylko 64 bezpiecznych znaków: A–Z, a–z, 0–9, + i /, ze znakiem = jako dopełnieniem na końcu (zdefiniowany w RFC 4648). Istnieje po to, by dane binarne mogły przechodzić przez systemy stworzone do zwykłego tekstu, takie jak e-mail, JSON, HTML i nagłówki HTTP.
Każde 3 bajty danych wejściowych stają się 4 znakami Base64, więc zakodowane dane są o około 33% większe niż oryginał. Na przykład tekst Hi zamienia się w SGk=. Base64 spotkasz w załącznikach e-mail, obrazach zapisanych jako URI data: w HTML i CSS, odpowiedziach API przenoszących pliki, tokenach JSON Web Token i nagłówkach uwierzytelniania HTTP Basic.

Jak Zdekodować Base64
Wklej go w pole Dekoduj. Podziały wierszy, spacje, prefiks data:...;base64,, znaki URL-safe (- i _) oraz brakujące dopełnienie = są obsługiwane.
Jeśli dane są tekstem, zdekodowany tekst UTF-8 pojawia się od razu, gotowy do skopiowania.
Jeśli dane są plikiem, dekoder rozpoznaje format po pierwszych bajtach: obrazy są wyświetlane w podglądzie, a pliki PDF, ZIP i inne można pobrać.
Advertisement
Jak Zakodować Tekst lub Plik do Base64
Wpisz lub wklej tekst na karcie Koduj. Jest kodowany jako UTF-8, więc polskie znaki, akcenty, pisma azjatyckie i emoji po zdekodowaniu wracają w niezmienionej postaci.
Zaznacz URL-safe, aby uzyskać Base64URL (używany w adresach URL i tokenach JWT), lub zawijaj wiersze co 76 znaków na potrzeby treści e-maili MIME.
Na karcie Plik na Base64 upuść dowolny plik do 10 MB. Skopiuj surowy Base64 lub gotowy data URI, np. data:image/png;base64,..., aby osadzić go w HTML lub CSS.
Base64 na Obraz i Base64 do PDF
Base64 często opakowuje plik: obraz osadzony na stronie internetowej lub w e-mailu albo PDF zwrócony przez API. Dekoder sprawdza pierwsze bajty, tzw. magic numbers (sygnatury plików), aby ustalić, czym jest plik: obrazy PNG, JPEG, GIF, WebP i SVG otrzymują podgląd na żywo, a pliki PDF, ZIP, GZIP, MP3 i MP4 przycisk pobierania. Pliki PDF można też otworzyć w nowej karcie.
W drugą stronę obraz na Base64 zamienisz na karcie Plik na Base64: upuść obraz i skopiuj data URI.
Advertisement
Warianty Base64: Standardowy, URL-Safe, MIME i Data URI
Używa + i / z dopełnieniem =. Domyślny w większości bibliotek i API.
Zamienia + i / na - i _ i zwykle pomija dopełnienie, dzięki czemu wynik może trafić do adresu URL lub nazwy pliku. Używają go tokeny JSON Web Token.
Standardowy Base64 podzielony na wiersze po 76 znaków, stosowany w załącznikach e-mail.
Base64 z prefiksem określającym typ pliku, np. data:image/png;base64,, dzięki czemu przeglądarka może wyświetlić go bezpośrednio na stronie.
Base64 To Kodowanie, a Nie Szyfrowanie
Base64 sprawia, że dane można bezpiecznie przesyłać, ale nie czyni ich tajnymi. Każdy może je zdekodować w sekundę, również za pomocą tego narzędzia:
Nigdy nie używaj Base64 do ukrywania haseł ani kluczy. Nagłówek uwierzytelniania HTTP Basic to po prostu
user:passwordw Base64, dlatego musi być przesyłany wyłącznie przez HTTPS. Certyfikat witryny sprawdzisz narzędziem do sprawdzania SSL.Zawartość tokenów JWT jest czytelna. Środkowa część tokena JSON Web Token to JSON zakodowany w Base64URL, więc każdy, kto ma token, może odczytać zapisane w nim dane (claims).
Dekodowanie tutaj jest prywatne. To narzędzie działa w całości w Twojej przeglądarce; dane, które wklejasz lub przesyłasz, nigdy nie trafiają na nasz serwer.
Potrzebujesz prawdziwej poufności? Użyj właściwego szyfrowania, a silne sekrety wygeneruj generatorem haseł.
Advertisement
Base64 w JavaScript, Pythonie i Wierszu Poleceń
Każdy język ma wbudowaną obsługę Base64. Pamiętaj, aby najpierw zakodować tekst jako UTF-8, w przeciwnym razie znaki spoza alfabetu angielskiego (np. ą, ę, ł) zostaną uszkodzone.
// Encode UTF-8 text
const b64 = btoa(String.fromCharCode(...new TextEncoder().encode('héllo'))) // 'aMOpbGxv'
// Decode back to text
const text = new TextDecoder().decode(Uint8Array.from(atob(b64), (c) => c.charCodeAt(0)))import base64
b64 = base64.b64encode('héllo'.encode()).decode() # 'aMOpbGxv'
text = base64.b64decode(b64).decode() # 'héllo'
url_safe = base64.urlsafe_b64encode(b'\xfb\xff\xbf') # b'-_-_'echo -n 'hello' | base64 # aGVsbG8=
echo 'aGVsbG8=' | base64 --decode # hello
base64 -w 0 image.png > image.txt # Linux: one line, no wrapping[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes('hello')) # aGVsbG8=
[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('aGVsbG8=')) # helloWięcej Narzędzi do Kodowania i Tekstu
Inne konwertery do pracy z tekstem i danymi: