Dekodowanie Base64
Darmowe narzędzie online do dekodowania Base64, które przywraca ciąg Base64 do oryginalnego tekstu. Obsługuje wiele zestawów znaków i przydaje się przy analizie API oraz logów.
Powiązane Rekomendacje
Czym jest dekodowanie Base64?
Dekodowanie Base64 to proces odwrotny do kodowania Base64: zamienia ciąg Base64 (np. SGVsbG8=) z powrotem na oryginalny tekst lub dane binarne. Base64 to metoda kodowania reprezentująca dane binarne za pomocą 64 drukowalnych znaków ASCII (A-Z, a-z, 0-9, +, /), zdefiniowana w RFC 4648.
**Typowe zastosowania dekodowania:** Base64 jest szeroko używany w nagłówkach HTTP Basic Authentication, segmentach payload tokenów JWT, polach odpowiedzi API, Data URI (np. `data:image/png;base64,...`), kodowaniu MIME załączników e-mail i przechowywaniu pól BLOB w bazach danych. Dekodowanie takich danych to codzienna czynność w developmentcie i debugowaniu.
**Najważniejsze kroki podczas dekodowania:** przy dekodowaniu Base64 trzeba poprawnie obsłużyć: 1) zestaw znaków (UTF-8 dla znaków wielobajtowych, ASCII dla czystego tekstu angielskiego); 2) Padding (`=`), ponieważ długość musi być wielokrotnością 4; 3) wariant URL-safe (`-` i `_` zamiast `+` i `/`); 4) znaki nowej linii i spacje (standardowy Base64 ich nie ma, a wariant MIME wstawia je co 76 znaków).
**Natywne wsparcie w przeglądarce:** przeglądarka udostępnia funkcję `atob()` do dekodowania Base64, ale obsługuje ona tylko Latin-1 (ISO-8859-1). W przypadku znaków wielobajtowych trzeba najpierw zinterpretować bajty UTF-8 za pomocą `TextDecoder('utf-8')`. To narzędzie robi to automatycznie.
**Prywatność dzięki lokalnemu przetwarzaniu:** wszystkie operacje dekodowania są wykonywane w przeglądarce. Wprowadzony ciąg Base64 nie jest wysyłany na żaden serwer, więc można bezpiecznie dekodować wrażliwe tokeny z odpowiedzi API lub dane użytkowników zapisane w logach.
Przypadki użycia
- Dekodowanie pól Base64 zwracanych przez API w celu sprawdzenia oryginalnej treści
- Przywracanie danych zakodowanych w Base64 z logów
- Odzyskiwanie wartości Base64 z plików konfiguracyjnych
- Analiza błędów dekodowania Base64, takich jak brak paddingu lub nieprawidłowe znaki
- Dekodowanie segmentów header i payload JWT w celu sprawdzenia informacji o użytkowniku
- Dekodowanie poświadczeń HTTP Basic Authentication w celu odczytu nazwy użytkownika i hasła
- Przywracanie obrazów lub danych zasobów z Data URI Scheme
Jak Używać
- Wklej ciąg Base64, który chcesz zdekodować
- Wybierz zestaw znaków (UTF-8/ASCII/ISO-8859-1)
- Narzędzie automatycznie zdekoduje Base64 i pokaże wynik
- Skopiuj wynik do dalszego debugowania lub dokumentacji
Funkcje
- Konwersja w czasie rzeczywistym: po wpisaniu danych następuje automatyczne dekodowanie z opóźnieniem 300 ms, bez ręcznego uruchamiania
- Obsługa wielu zestawów znaków: UTF-8, ASCII i ISO-8859-1 dla języka polskiego, angielskiego i scenariuszy wielojęzycznych
- Zgodność z URL-safe Base64: automatycznie obsługuje zamianę `-` i `_` oraz formaty bez paddingu
- Wykrywanie nieprawidłowych znaków: przy błędzie dekodowania wskazuje miejsce problemu w ciągu
- Kopiowanie i pobieranie jednym kliknięciem: wynik można skopiować do schowka lub pobrać jako plik `.txt`
- Automatyczna obsługa paddingu: znaki `=` są automatycznie uzupełniane lub usuwane
- Obsługa wariantu MIME: rozpoznaje i przetwarza Base64 MIME z podziałem wierszy co 76 znaków
Przykłady kodu
JavaScript: dekodowanie przez `atob()` w przeglądarce (tylko Latin-1)
javascriptUżyj natywnego API przeglądarki do dekodowania prostego Base64. Dla UTF-8 potrzebny jest `TextDecoder`.
// Standard Base64 decode (plain English / Latin-1)
function b64Decode(str) {
try {
return atob(str);
} catch (e) {
return 'Decode failed: ' + e.message;
}
}
console.log(b64Decode('SGVsbG8gV29ybGQ=')); // "Hello World"
// UTF-8 decode (recommended)
function b64DecodeUtf8(str) {
const binary = atob(str);
const bytes = new Uint8Array(binary.length);
for (let i = 0; i < binary.length; i++) {
bytes[i] = binary.charCodeAt(i);
}
return new TextDecoder('utf-8').decode(bytes);
}
console.log(b64DecodeUtf8('5LiW55WM')); // UTF-8 textPython: dekodowanie przez bibliotekę `base64` (z URL-Safe)
pythonStandardowa biblioteka `base64` w Pythonie obsługuje tryby Standard i URL-Safe.
import base64
# Standard decode
encoded = 'SGVsbG8g5LiW55WM'
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)
# URL-Safe decode
url_encoded = 'SGVsbG8g5LiW55WM'
decoded = base64.urlsafe_b64decode(url_encoded + '=' * (4 - len(url_encoded) % 4))
print(decoded.decode('utf-8'))
# MIME decode (after removing line breaks)
mime_encoded = 'SGVs\nbG8g\nV29y\nbGQ='
decoded = base64.b64decode(mime_encoded.replace('\n', '')).decode('utf-8')
print(decoded)
# Ignore invalid characters automatically
import re
cleaned = re.sub(r'[^A-Za-z0-9+/=]', '', encoded)
decoded = base64.b64decode(cleaned).decode('utf-8')
print(decoded)Java: dekodowanie przez `java.util.Base64` (różne warianty)
javaStandardowa biblioteka Java zapewnia pełne wsparcie dla Base64 RFC 4648, URL-Safe i MIME.
import java.nio.charset.StandardCharsets;
import java.util.Base64;
public class Base64DecodeExample {
public static void main(String[] args) {
String encoded = "SGVsbG8g5LiW55WM";
// Standard decode
byte[] decoded = Base64.getDecoder().decode(encoded);
System.out.println(new String(decoded, StandardCharsets.UTF_8));
// URL-Safe decode
byte[] urlDecoded = Base64.getUrlDecoder().decode(encoded);
System.out.println(new String(urlDecoded, StandardCharsets.UTF_8));
// MIME decode (handles line breaks automatically)
String mime = "SGVs\nbG8g\nV29y\nbGQ=";
byte[] mimeDecoded = Base64.getMimeDecoder().decode(mime);
System.out.println(new String(mimeDecoded, StandardCharsets.UTF_8));
// Error handling
try {
Base64.getDecoder().decode("invalid@base64");
} catch (IllegalArgumentException e) {
System.err.println("Decode failed: " + e.getMessage());
}
}
}Często Zadawane Pytania
Dlaczego podczas dekodowania Base64 pojawia się InvalidCharacterError?
Najczęstsze przyczyny to obecność spacji, nowych linii lub cudzysłowów, nieprawidłowa liczba znaków Padding (`=`) albo użycie wariantu URL-safe (`-/_`) potraktowanego jak standardowy Base64. Najpierw wyczyść ciąg wejściowy.
Co zrobić, jeśli po dekodowaniu widać nieczytelne znaki?
Najprawdopodobniej wybrano niewłaściwy zestaw znaków. Dla tekstu wielobajtowego wybierz UTF-8. Dla czystego angielskiego lub danych binarnych wypróbuj ASCII albo ISO-8859-1.
Czym różni się dekodowanie URL-safe Base64 od zwykłego Base64?
URL-safe Base64 używa `-` i `_` zamiast `+` i `/`, a końcowy Padding `=` jest często pomijany. Przed dekodowaniem należy przywrócić `-/_` do `+/` i uzupełnić padding.
Czy dekodowanie Base64 nadaje się do debugowania integracji API?
Tak, bardzo. Wiele odpowiedzi API, tokenów OAuth, parametrów callbacków i logów middleware zawija dane w Base64. Po dekodowaniu można od razu zobaczyć oryginalną treść.
Jak zdekodować header lub payload JWT?
JWT używa Base64URL (wariant URL-safe). Wklej pierwszy segment (header) albo drugi segment (payload) JWT i wybierz tryb URL-safe. Trzeci segment to podpis i nie powinien być zwyczajnie weryfikowany przez samo dekodowanie.
Czy narzędzie obsługuje duże pliki?
Nie ma sztywnego limitu rozmiaru, ale przy bardzo dużych tekstach wydajność przeglądarki spada. Dekodowanie ciągów Base64 powyżej 10 MB może spowolnić stronę, więc lepiej użyć dekodowania porcjami albo skryptu Node.js / Python.
Co jeśli brakuje paddingu?
Narzędzie automatycznie uzupełnia Padding (`=`), aby długość stała się wielokrotnością 4. Ponieważ wariant URL-safe często pomija padding, narzędzie wykrywa to i uzupełnia brakujące znaki.
Czy dekodowanie Base64 to odszyfrowanie?
Nie. Base64 to odwracalne kodowanie, a nie szyfrowanie. Każdy może zdekodować Base64. Dla wrażliwych danych należy stosować prawdziwe szyfrowanie, np. AES.
Czy wynik `atob()` w przeglądarce jest taki sam jak w tym narzędziu?
Dla prostego tekstu angielskiego zwykle tak. Jednak `atob()` obsługuje tylko Latin-1 i nie potrafi bezpośrednio przetwarzać tekstu UTF-8. To narzędzie odpowiada połączeniu `atob()` z `TextDecoder`.
Czy wynik dekodowania można wyeksportować?
Tak. Możesz skopiować go jednym kliknięciem do schowka albo pobrać jako plik `.txt`. Pobierany plik ma kodowanie UTF-8 i można go otworzyć w dowolnym edytorze tekstu lub Excelu.
Słownik
- Base64
- Metoda kodowania binarnego do tekstu oparta na 64 drukowalnych znakach ASCII, zdefiniowana w RFC 4648. Każde 3 bajty są zamieniane na 4 znaki, więc rozmiar rośnie o około 33%.
- atob()
- Natywna funkcja przeglądarki do dekodowania Base64 (ASCII to Binary). Obsługuje tylko Latin-1, więc dla UTF-8 wymaga użycia TextDecoder.
- Padding
- Na końcu Base64 dodawane są znaki `=`, aby długość była wielokrotnością 4. Podczas dekodowania padding jest zwykle obsługiwany automatycznie. Wariant URL-safe często go pomija.
- URL-Safe Base64
- Wariant bezpieczny dla URL, zdefiniowany w RFC 4648 §5, używający `-` i `_` zamiast `+` i `/`. Często stosowany w JWT i OAuth PKCE.
- MIME Base64
- Wariant Base64 zgodny z RFC 2045, który wstawia znak CRLF co 76 znaków. Jest używany głównie do przesyłania załączników e-mail.
- UTF-8
- Kodowanie Unicode o zmiennej długości. Aby poprawnie przywrócić znaki wielobajtowe, podczas dekodowania Base64 należy wybrać UTF-8.
- InvalidCharacterError
- Błąd zgłaszany przez `atob()`, gdy w danych wejściowych pojawią się znaki nienależące do Base64, takie jak spacje, nowe linie czy inne nieprawidłowe symbole.
- Latin-1 (ISO-8859-1)
- Jednobajtowy zestaw znaków dla języków Europy Zachodniej. `atob` i `btoa` w przeglądarce obsługują tylko ten zestaw i nie przetwarzają bezpośrednio UTF-8.
Porównanie 3 wariantów Base64
Przed dekodowaniem rozpoznaj wariant Base64 na wejściu i wybierz właściwy tryb, aby uniknąć błędów lub uszkodzonego wyniku.
| Cecha | Standard | URL-Safe | MIME |
|---|---|---|---|
| Znaki specjalne | + / | - _ | + / |
| Padding (=) | Używany | Zwykle pomijany | Używany |
| Nowa linia | Brak | Brak | Co 76 znaków |
| Standard | RFC 4648 §4 | RFC 4648 §5 | RFC 2045 |
| Typowe scenariusze | Data URI, ogólne kodowanie | JWT, parametry URL, nazwy plików | Załączniki e-mail, transmisja SMTP |
| Uwaga przy dekodowaniu | Może być potrzebne uzupełnienie paddingu | Najpierw zamień -_ na +/, potem dekoduj | Usuń nowe linie przed dekodowaniem |
5 typowych błędów podczas dekodowania Base64
Gdy pojawi się błąd dekodowania, skorzystaj z poniższej tabeli, aby szybko ustalić przyczynę.
| Typ błędu | Możliwa przyczyna | Rozwiązanie |
|---|---|---|
| InvalidCharacterError | Zawiera spacje, nowe linie lub znaki spoza Base64 | Wyczyść ciąg wejściowy lub użyj narzędzia Base64 Clean |
| Uszkodzony tekst po dekodowaniu | Wybrano zły zestaw znaków, np. UTF-8 odczytano jako Latin-1 | Przełącz na UTF-8 |
| Błąd w parametrze URL | Znaki URL-safe (`-_`) zostały zdekodowane jak standardowy Base64 | Najpierw zamień `-_` na `+/` |
| Błędny padding | Długość nie jest wielokrotnością 4 | Dodaj `=` aż długość % 4 = 0 |
| Pusty ciąg | Wejście zawiera tylko białe znaki lub nowe linie | Usuń białe znaki i wpisz ponownie |
Authoritative References
- Bezpieczne porównanie ciągów znaków
- Konwersja binarna
- Szyfr Cezara
- Kod Morse'a
- Szesnastkowy
- Video do Base64
- Base64 na wideo
- Obraz na Base64
- Base64 na obraz
- Tekst na Base64
- Base64 na tekst
- Weryfikacja haszu pliku
- Plik na Base64
- Base64 na plik
- Audio na Base64
- Base64 na Audio
- Szyfrowanie i deszyfrowanie AES
- Szyfrowanie i deszyfrowanie DES
- Koder Dekoder Base32
- Base58 kodowanie i dekodowanie
- Kodowanie Base64
- Dekodowanie Base64
- Porównanie Base64
- Podział Base64
- Base64 łączenie wielu linii
- Formatowanie Base64
- Sprawdzanie formatu Base64
- Wsadowe kodowanie Base64
- Batchowe dekodowanie Base64
- Czyszczenie Base64
- Narzędzie paddingu Base64
- Statystyki długości Base64
- Base64 na szesnastkowy
- Konwerter Base64 DataURL
- Konwerter Base64-Hex
- Koder/Dekoder Base85
- Generator i weryfikator HMAC
- Derywacja klucza PBKDF2
- Skrót MD5
- Hash SHA-256
- Hash SHA-1
- Hash SHA512
- Narzędzie JWT
- Kodowanie i dekodowanie encji HTML
- Unikod - sekwencje ucieczki
- Kodowanie URL
- Base64 URL Safe
- MIME Base64
- Obfuskacja Java
- Obfuskacja JS
- Obfuskacja PHP
- Obfuskacja Python