Dekodowanie Base64

Wklej ciąg Base64, aby odzyskać oryginalny tekst lub bajty. Podziały wierszy, znaki bezpieczne dla URL, brakujące dopełnienie i prefiksy data: są obsługiwane automatycznie, a komunikaty o błędach wskazują dokładnie, który znak jest nieprawidłowy.

Działa w całości w przeglądarce. Nic nie jest wysyłane.

Jak używać

  1. Wklej ciąg Base64 w polu wejściowym albo kliknij „Otwórz plik”, aby wczytać plik zawierający tekst w Base64.
  2. Pozostaw wyjście jako tekst i wybierz „Kodowanie tekstu” (domyślnie UTF-8) albo w przypadku danych binarnych ustaw „Wyjście jako” na „Hex”.
  3. Jeśli dekodowanie się nie powiedzie, przeczytaj komunikat o błędzie: podaje on pozycję pierwszego nieprawidłowego znaku.
  4. Skopiuj zdekodowany wynik lub go pobierz.

Jakie dane akceptuje dekoder

Dekodowanie odwraca kodowanie: każdy znak jest zamieniany z powrotem na swoją 6-bitową wartość, a każde cztery znaki dają trzy bajty. Base64 spotykany w praktyce rzadko jest idealnie czysty, dlatego ten dekoder toleruje typowe odstępstwa:

  • Spacje i podziały wierszy są ignorowane, więc zawinięte treści MIME i bloki PEM można wkleić bez zmian. Najpierw jednak usuń wiersze -----BEGIN i -----END: zawarte w nich litery i myślniki są prawidłowymi znakami Base64 i zostałyby zdekodowane jako dane.
  • Dane w wariancie bezpiecznym dla URL ze znakami - i _ dekodują się tak samo jak standardowy Base64 ze znakami + i /.
  • Brak dopełnienia nie stanowi problemu. Odrzucana jest tylko długość 4n + 1 znaków, ponieważ z jednego pozostałego znaku nie da się utworzyć bajtu; zwykle oznacza to, że ciąg został obcięty.
  • Data URI również są obsługiwane: początkowy prefiks data:...;base64, jest usuwany przed dekodowaniem.

Wyjście tekstowe lub binarne

Wynikiem dekodowania jest zawsze ciąg bajtów. Jeśli oryginał był tekstem, pozostaw wyjście tekstowe i wybierz jego zestaw znaków. Jeśli był to obraz, PDF, archiwum, klucz lub szyfrogram, żaden zestaw znaków nie uczyni go czytelnym: ustaw „Wyjście jako” na „Hex”, aby przejrzeć bajty, albo otwórz Base64 na plik lub Base64 na obraz, aby wyświetlić podgląd i zapisać dane. Pierwsze znaki często zdradzają zawartość:

Base64 zaczyna się odZdekodowana zawartość
iVBORw0KGgoObraz PNG
/9j/Obraz JPEG
R0lGODObraz GIF
JVBERi0Dokument PDF
UEsDBArchiwum ZIP, w tym DOCX, XLSX i JAR
H4sIDane skompresowane algorytmem gzip
eyJObiekt JSON, np. nagłówek JWT

Skąd biorą się dziwne znaki w zdekodowanym tekście

  • Niewłaściwy zestaw znaków. Tekst UTF-8 odczytany jako Windows-1252 zamienia é w é, a tekst GBK lub Shift_JIS odczytany jako UTF-8 wyświetla znaki zastępcze (�). Wybierz zestaw znaków, w którym tekst został zapisany.
  • Dane binarne. Przypadkowe symbole z nielicznymi czytelnymi fragmentami, takimi jak PNG lub PK blisko początku, oznaczają, że zawartość jest plikiem, a nie tekstem.
  • Dane skompresowane lub zaszyfrowane. Strumienie gzip, Protocol Buffers i szyfrogramy dekodują się poprawnie, ale nie są tekstem. Wyjście Hex pokazuje, co faktycznie się w nich znajduje.
  • Podwójne kodowanie. Jeśli wynik sam jest ciągiem Base64, wklej go ponownie w polu wejściowym i zdekoduj drugi raz.

Dekodowanie Base64 w kodzie

# Python
base64.b64decode(s).decode('utf-8')

// Node.js (akceptuje też wariant bezpieczny dla URL)
Buffer.from(s, 'base64').toString('utf8')

// Przeglądarka: atob() zwraca jeden znak na bajt, więc potem trzeba zdekodować UTF-8
new TextDecoder().decode(Uint8Array.from(atob(s), c => c.charCodeAt(0)))

# Powłoka w systemach Linux i macOS
echo 'SGVsbG8=' | base64 --decode

Specyfikacja

AlfabetA-Z a-z 0-9 + /
Rozmiar wyniku4 znaki na 3 bajty (ok. 133%)
Dopełnienie= do wielokrotności 4 znaków
StandardRFC 4648, sekcja 4
Rozróżnia wielkość literTak

Przykłady

Wejście (UTF-8)Wyjście
Hello, World!SGVsbG8sIFdvcmxkIQ==
Base64.isQmFzZTY0Lmlz
你好5L2g5aW9

Najczęściej zadawane pytania

Skąd bierze się błąd nieprawidłowego znaku?
Dane wejściowe zawierają coś spoza alfabetu Base64, np. cudzysłowy, ukośnik wsteczny lub sekwencje procentowe, takie jak %2B i %3D, skopiowane z adresu URL. Usuń cudzysłowy lub najpierw zdekoduj ciąg z kodowania URL. Komunikat o błędzie wskazuje pozycję pierwszego nieprawidłowego znaku.
Czy można dekodować Base64 bez dopełnienia?
Tak. Dekoder nie potrzebuje końcowych znaków =, więc ciągi bez dopełnienia pochodzące z tokenów JWT, adresów URL i interfejsów API dekodują się normalnie.
Dlaczego wynik jest błędny po skopiowaniu Base64 z adresu URL?
Gdy Base64 trafia do ciągu zapytania bez zakodowania znaków specjalnych, dekodowanie danych formularza często zamienia każdy znak + na spację. Spacje są tutaj ignorowane, więc te znaki zostają utracone. Przed dekodowaniem zamień spacje z powrotem na +, a dla wartości przesyłanych w adresach URL używaj Base64URL.
Jak zdekodować Base64 do obrazu lub pliku?
Użyj narzędzia Base64 na obraz, aby wyświetlić podgląd i pobrać obrazy, lub Base64 na plik w przypadku dokumentów PDF, archiwów, plików audio i innych plików. Oba narzędzia rozpoznają typ pliku na podstawie jego pierwszych bajtów.
Czy dane Base64 są wysyłane na serwer?

Nie. Dekodowanie odbywa się w przeglądarce za pomocą JavaScriptu, a dane wejściowe nigdy nie opuszczają urządzenia. Ma to znaczenie przy dekodowaniu tokenów, tajnych danych konfiguracyjnych lub danych osobowych.