Dekodowanie Base64

Wejście Base64
0 znaków

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ć

  1. Wklej ciąg Base64, który chcesz zdekodować
  2. Wybierz zestaw znaków (UTF-8/ASCII/ISO-8859-1)
  3. Narzędzie automatycznie zdekoduje Base64 i pokaże wynik
  4. 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)

javascript

Uż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 text

Python: dekodowanie przez bibliotekę `base64` (z URL-Safe)

python

Standardowa 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)

java

Standardowa 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.

CechaStandardURL-SafeMIME
Znaki specjalne+ /- _+ /
Padding (=)UżywanyZwykle pomijanyUżywany
Nowa liniaBrakBrakCo 76 znaków
StandardRFC 4648 §4RFC 4648 §5RFC 2045
Typowe scenariuszeData URI, ogólne kodowanieJWT, parametry URL, nazwy plikówZałączniki e-mail, transmisja SMTP
Uwaga przy dekodowaniuMoże być potrzebne uzupełnienie paddinguNajpierw zamień -_ na +/, potem dekodujUsuń 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łęduMożliwa przyczynaRozwiązanie
InvalidCharacterErrorZawiera spacje, nowe linie lub znaki spoza Base64Wyczyść ciąg wejściowy lub użyj narzędzia Base64 Clean
Uszkodzony tekst po dekodowaniuWybrano zły zestaw znaków, np. UTF-8 odczytano jako Latin-1Przełącz na UTF-8
Błąd w parametrze URLZnaki URL-safe (`-_`) zostały zdekodowane jak standardowy Base64Najpierw zamień `-_` na `+/`
Błędny paddingDługość nie jest wielokrotnością 4Dodaj `=` aż długość % 4 = 0
Pusty ciągWejście zawiera tylko białe znaki lub nowe linieUsuń białe znaki i wpisz ponownie

Authoritative References