Base64-Dekodierung

Base64-Eingabe
0 Zeichen

Kostenloses Online-Base64-Dekodierungstool. Unterstützt Standard- und URL-Safe-Variante mit den Zeichensätzen UTF-8/ASCII/ISO-8859-1. Ideal zum Dekodieren von API-Antworten, JWT-Payloads und Log-Feldern direkt im Browser.

Ähnliche Tools

Was ist Base64-Dekodierung?

Base64-Dekodierung ist der Vorgang, einen Base64-codierten Text (eine ASCII-Zeichenkette) zurück in die ursprünglichen Binärdaten oder Klartext umzuwandeln. Base64 wurde ursprünglich in RFC 2045 (MIME-Standard) definiert und nutzt 64 druckbare ASCII-Zeichen (A-Z, a-z, 0-9, +, /), um jeweils 3 Bytes (24 Bit) in 4 Zeichen abzubilden. Die Dekodierung kehrt diesen Vorgang um und rekonstruiert die ursprüngliche Byte-Sequenz, die anschließend wieder als Text interpretiert werden kann.

**Die Dekodierung läuft vollständig lokal im Browser** über die native `atob`-API und einen UTF-8-sicheren Wrapper. Das bedeutet, dass weder der Base64-String noch der entschlüsselte Inhalt jemals das Gerät verlässt. Das ist besonders wichtig bei Tokens, Logs und API-Antworten, die sensible oder personenbezogene Daten enthalten können.

**Standard- vs. URL-Safe-Variante**: Das Standard-Alphabet enthält `+` und `/`, die in URLs eine Sonderbedeutung haben. URL-Safe-Base64 (RFC 4648 §5, auch Base64URL) ersetzt diese Zeichen durch `-` und `_` und verzichtet häufig auf das Padding `=`. JWT-Tokens, OAuth-PKCE-Werte und AWS-Signaturen verwenden ausschließlich die URL-Safe-Variante. Das Tool erkennt beide Varianten automatisch und normalisiert die Zeichen vor der Dekodierung.

**Padding-Handling**: Eine Base64-Zeichenkette hat immer eine Länge, die ein Vielfaches von 4 ist. Fehlt das abschließende `=`-Padding (häufig bei URL-Safe-Variante oder gekürzten Tokens), ergänzt das Tool es automatisch. So können auch unvollständige Strings aus Logs oder Headern dekodiert werden, ohne dass vorher manuell aufgefüllt werden muss.

**Mehrere Zeichensätze**: Die nach `atob` zurückgewonnenen Bytes müssen noch in Text umgewandelt werden. UTF-8 ist der Standard für moderne Anwendungen und deckt Deutsch, Sonderzeichen und viele weitere Sprachen ab. ASCII und ISO-8859-1 (Latin-1) sind relevant, wenn Legacy-Systeme, Binärdaten oder bestimmte europäische Sprachen ohne UTF-8-Header verarbeitet werden. Die Wahl des falschen Zeichensatzes ist die häufigste Ursache für sichtbaren Zeichensalat.

Anwendungsfälle

  • API-Antworten entschlüsseln: Base64-Felder aus JSON-Antworten oder REST-Endpunkten in lesbaren Text zurückverwandeln
  • JWT-Payloads prüfen: Header und Payload von JWT-Tokens (Base64URL) dekodieren, um Ansprüche und Ablaufzeiten zu inspizieren
  • Log-Felder wiederherstellen: Base64-codierte Einträge aus Anwendungs- oder Server-Logs in Originaltext umwandeln
  • Konfigurationen auslesen: Base64-Werte aus Konfigurationsdateien, Umgebungsvariablen oder Datenbank-Feldern lesbar machen
  • OAuth-PKCE-Werte verarbeiten: code_verifier und code_challenge (URL-Safe Base64) während des OAuth-Logins dekodieren
  • E-Mail-Anhänge zurückwandeln: MIME-Base64-Strings aus E-Mail-Quelltext oder SMTP-Traces in Binärdaten zurückübersetzen
  • Debugging-Hilfe: Zeichensatz-, Padding- und Varianten-Probleme bei der Base64-Dekodierung analysieren und beheben

Anleitung

  1. Base64-String einfügen: Kopieren Sie den zu dekodierenden String in das obere Eingabefeld
  2. Variante wählen: Standard, URL-Safe (JWT/OAuth) oder MIME (E-Mail-Format mit 76-Zeichen-Zeilenumbrüchen)
  3. Zeichensatz wählen: UTF-8 für moderne Texte, ASCII oder ISO-8859-1 bei Bedarf
  4. Ergebnis kopieren oder herunterladen: Den dekodierten Text als Klartext verwenden, kopieren oder als .txt speichern

Funktionen

  • Sofortige Dekodierung: Base64 wird beim Eintippen automatisch entschlüsselt, mit 300 ms Debounce für flüssige Eingabe
  • Standard und URL-Safe: Beide Varianten werden automatisch erkannt, `-`/`_` werden intern auf `+`/`/` normalisiert
  • Drei Zeichensätze: UTF-8 (Standard), ASCII (nur 7 Bit) und ISO-8859-1 (Latin-1) für Legacy-Daten und Binärinhalte
  • Präzise Fehlermeldungen: Bei ungültigen Zeichen, fehlendem Padding oder Längenfehlern wird die konkrete Ursache angezeigt
  • Kopieren und Download: Dekodierte Texte können mit einem Klick in die Zwischenablage kopiert oder als .txt-Datei heruntergeladen werden
  • Bidirektionaler Modus: Mit einem Klick wechseln Sie zur Base64-Kodierung, die Ausgabe wird zur neuen Eingabe
  • Lokale Verarbeitung: Sämtliche Berechnungen laufen ausschließlich im Browser, es werden keinerlei Daten an einen Server übertragen

Codebeispiele

Base64-Dekodierung in JavaScript (mit UTF-8-Unterstützung)

// Dekodierung (unterstützt UTF-8 inkl. Umlaute und Emojis)
function b64Decode(str) {
  // 1. URL-Safe → Standard normalisieren
  const normalized = str.replace(/-/g, '+').replace(/_/g, '/');
  // 2. Padding ergänzen
  const padded = normalized + '==='.slice((normalized.length + 3) % 4);
  // 3. Latin-1-Bytes → UTF-8-String
  const binary = atob(padded);
  const bytes = Uint8Array.from(binary, c => c.charCodeAt(0));
  return new TextDecoder('utf-8').decode(bytes);
}

console.log(b64Decode('SGVsbG8gV8O2bHQh'));            // Hello Welt!
console.log(b64Decode('SGVsbG8g5LiW55WM'));            // Hello 世界
console.log(b64Decode('eyJzdWIiOiIxIn0'));              // {"sub":"1"}

// Direkter Aufruf in der Browser-Konsole:
// atob('SGVsbG8gV8O2bHQh');
// → "Hello Welt!" (funktioniert nur für reines ASCII)

Base64-Dekodierung in Python (Standard, URL-Safe, Padding)

import base64

encoded = 'SGVsbG8gV8O2bHQh'

# Standard-Dekodierung (UTF-8)
decoded = base64.b64decode(encoded).decode('utf-8')
print(decoded)  # Hello Welt!

# URL-Safe-Dekodierung (für JWT / OAuth)
url_safe_encoded = 'SGVsbG8gV8O2bHQh'  # base64.urlsafe_b64encode(...)
decoded_url_safe = base64.urlsafe_b64decode(
    url_safe_encoded + '=' * (-len(url_safe_encoded) % 4)
).decode('utf-8')
print(decoded_url_safe)  # Hello Welt!

# Robuster Helfer: akzeptiert URL-Safe oder Standard, fehlendes Padding
def b64_decode_flexible(s: str) -> str:
    s = s.strip().replace('-', '+').replace('_', '/')
    s += '=' * (-len(s) % 4)
    return base64.b64decode(s).decode('utf-8')

print(b64_decode_flexible('eyJzdWIiOiIxIn0'))   # {"sub":"1"}

Base64-Dekodierung in Java mit java.util.Base64

import java.nio.charset.StandardCharsets;
import java.util.Base64;

public class Base64DecodeExample {
    public static void main(String[] args) {
        String encoded = "SGVsbG8gV8O2bHQh"; // "Hello Welt!"

        // Standard-Dekodierung
        String decoded = new String(
            Base64.getDecoder().decode(encoded),
            StandardCharsets.UTF_8
        );
        System.out.println(decoded); // Hello Welt!

        // URL-Safe-Dekodierung (für JWT / OAuth)
        Base64.Decoder urlDecoder = Base64.getUrlDecoder();
        String decodedUrl = new String(
            urlDecoder.decode(encoded),
            StandardCharsets.UTF_8
        );
        System.out.println(decodedUrl); // Hello Welt!

        // MIME-Dekodierung (entfernt 76-Zeichen-Zeilenumbrüche automatisch)
        Base64.Decoder mimeDecoder = Base64.getMimeDecoder();
        String decodedMime = new String(
            mimeDecoder.decode(encoded),
            StandardCharsets.UTF_8
        );
        System.out.println(decodedMime); // Hello Welt!
    }
}

Häufig gestellte Fragen

Wie dekodiere ich einen Base64-String zurück in Text?

Fügen Sie den Base64-String oben in das Eingabefeld ein. Das Tool dekodiert ihn sofort automatisch und zeigt das Ergebnis unten an. Es unterstützt sowohl Standard-Base64 als auch die URL-Safe-Variante und erkennt fehlendes Padding automatisch.

Warum tritt beim Dekodieren ein InvalidCharacterError auf?

Die häufigsten Ursachen sind: Leerzeichen, Zeilenumbrüche oder Anführungszeichen, die nicht Teil des Base64-Alphabets sind, ein falsches oder fehlendes Padding (`=`) oder die unerkannte URL-Safe-Variante mit `-` und `_` statt `+` und `/`. Reinigen Sie den String vorher mit einer Whitespace-Entfernung oder wechseln Sie in den URL-Safe-Modus.

Der dekodierte Text enthält nur Hieroglyphen – was tun?

Wahrscheinlich ist der falsche Zeichensatz gewählt. Für deutsche Texte und moderne Inhalte wählen Sie UTF-8, für ältere westeuropäische Daten ISO-8859-1 (Latin-1) und für reine ASCII-Inhalte ASCII. Wechseln Sie den Zeichensatz im Dropdown und das Ergebnis wird sofort neu berechnet.

Was ist der Unterschied zwischen Standard-Base64 und URL-Safe-Base64?

Standard-Base64 verwendet die Zeichen `+` und `/`, die in URLs reserviert sind und maskiert werden müssten. URL-Safe-Base64 (RFC 4648 §5, auch Base64URL) ersetzt sie durch `-` und `_` und verzichtet meist auf das abschließende `=`. Das macht die Zeichenkette direkt nutzbar in URLs, Dateinamen und JSON-Feldern, etwa in JWT-Tokens.

Kann ich mit dem Tool JWT-Tokens dekodieren?

Ja. JWT verwendet Base64URL-Kodierung. Wählen Sie den URL-Safe-Modus und fügen Sie das erste Segment (Header) oder das zweite Segment (Payload) des Tokens ein, um die enthaltenen Claims und Ablaufzeiten zu prüfen. Das dritte Segment ist die Signatur und sollte hier nicht analysiert werden.

Wie gehe ich mit fehlendem oder abgeschnittenem Padding um?

Standard-Base64 hat immer eine Länge, die ein Vielfaches von 4 ist. Fehlt das `=` am Ende, ergänzt das Tool das Padding automatisch, bevor es dekodiert. Sie können daher auch gekürzte Strings aus Logs oder Headern direkt einfügen, ohne manuell aufzufüllen.

Werden meine Daten beim Dekodieren an einen Server gesendet?

Nein. Die gesamte Dekodierung läuft ausschließlich im Browser über die native `atob`-API. Es werden weder der Base64-String noch das dekodierte Ergebnis an einen Server übertragen. Sie können das in den Entwicklertools im Netzwerk-Tab überprüfen – es gibt keine externen Anfragen.

Eignet sich das Tool auch für die Dekodierung von MIME-Base64 aus E-Mails?

Ja. Wechseln Sie in den MIME-Modus, dann werden automatisch alle 76 Zeichen eingefügte Zeilenumbrüche (`\n` oder CRLF) entfernt, bevor dekodiert wird. So können Sie Base64-Blöcke aus dem Quelltext einer E-Mail direkt einfügen und das ursprüngliche Binärformat (in der Regel Base64-codierten Anhang) zurückgewinnen.

Wie groß darf der Base64-String maximal sein?

Es gibt keine künstliche Grenze. Da der gesamte Vorgang im Browser läuft, hängt das Limit nur vom verfügbaren Arbeitsspeicher des Geräts ab. Strings mit mehreren Megabyte Länge sind in der Regel problemlos möglich, solange Sie die Eingabe nicht auf jedem Tastenanschlag erneut dekodieren (was das Tool durch das 300-ms-Debounce abmildert).

Kann ich mit dem Tool auch wieder zu Base64 kodieren?

Ja. Über die Modus-Umschaltung Encode/Decode wechseln Sie mit einem Klick die Richtung. Das aktuelle Ergebnis wird automatisch zur neuen Eingabe, sodass Sie ohne erneutes Kopieren direkt weiterarbeiten können.

Fehlerbehebung

InvalidCharacterError beim Dekodieren

Ergebnis ist leer oder kürzer als erwartet

Hieroglyphen statt Buchstaben

atob wirft „InvalidCharacterError" bei deutschen Umlauten

JWT-Payload sieht falsch aus oder wird abgelehnt

Sehr lange Strings führen zu Ruckeln

Glossar

Base64
Binär-zu-Text-Kodierungsschema, das auf 64 druckbaren ASCII-Zeichen basiert (A-Z, a-z, 0-9, +, /). Erstmals durch RFC 2045 (MIME) definiert, aktuell durch RFC 4648 standardisiert. Base64 wird häufig verwendet, um Binärdaten in Textsystemen wie HTTP-Headern, JSON-Payloads, XML-Dokumenten oder URL-Parametern zu übertragen.
RFC 4648
Offizieller IETF-Standard für die Base16-, Base32- und Base64-Kodierung. Definiert das Standard-Alphabet sowie die URL-Safe-Variante (Base64URL) und legt Regeln für Padding, Zeilenumbrüche und den Umgang mit ungültigen Zeichen fest. Er ist der de facto aktuelle Standard für die Base64-Kodierung und -Dekodierung.URL-Safe Base64 ToolBase64 Padding Tool
RFC 2045 (MIME)
Multipurpose Internet Mail Extensions-Standard. Er war der Erste, der Base64 als Kodierungsmethode für die Übertragung von E-Mail-Inhalten einführte. Definiert die MIME-Variante mit einer maximalen Zeilenlänge von 76 Zeichen und CRLF-Zeilenenden.MIME Base64 Tool
Base64URL (URL-Safe Base64)
URL-sichere Variante, definiert in RFC 4648 §5. Ersetzt `+` durch `-` und `/` durch `_`, das Padding `=` wird in der Regel weggelassen. Dadurch kann die Base64-Zeichenkette direkt in URLs, Dateinamen oder JSON-Feldern verwendet werden. JWT, OAuth PKCE und AWS Signature V4 nutzen diese Variante.JWT Tool
Padding (Auffüllung)
Mechanismus, mit dem die Länge einer Base64-Zeichenkette auf das nächste Vielfache von 4 gebracht wird. Fehlende Zeichen werden mit `=` aufgefüllt. Bei der Dekodierung entfernt oder ergänzt das Tool das Padding automatisch, sodass auch unvollständige Strings aus Logs oder Headern verarbeitet werden können.Base64 Padding Tool
atob() und btoa()
Native Browser-APIs für die Base64-Kodierung und -Dekodierung. `btoa` (binary to ASCII) kodiert, `atob` (ASCII to binary) dekodiert. Beide APIs arbeiten ausschließlich mit dem Latin-1-Zeichensatz (ISO-8859-1). Für UTF-8-Inhalte (z. B. Umlaute, Emojis) muss zusätzlich eine Byte-Sequenz-Transkodierung durchgeführt werden.MDN - atob()
InvalidCharacterError
Fehlermeldung der `atob`-API oder vergleichbarer Decoder, wenn die Eingabe Zeichen enthält, die nicht im Base64-Alphabet vorkommen (z. B. Leerzeichen, Zeilenumbrüche, Anführungszeichen außerhalb der Base64-Zeichen). Das Tool meldet die ungefähre Position des Problems, damit die Fehlerursache im String schnell lokalisiert werden kann.
UTF-8 / ASCII / ISO-8859-1 (Latin-1)
Drei Zeichensätze, die das Tool bei der Rückwandlung der dekodierten Bytes in Text unterstützt. UTF-8 ist der moderne Standard und deckt nahezu alle Sprachen ab. ASCII kodiert nur Zeichen mit Code-Punkt ≤ 127 und eignet sich für einfache englische Texte. ISO-8859-1 (Latin-1) deckt westeuropäische Sprachen inklusive deutscher Umlaute ab und ist relevant für Legacy-Systeme.

Base64-Varianten und ihre Dekodierungsmerkmale

MerkmalStandardURL-SafeMIME
Sonderzeichen+ /- _+ /
Padding (=)ErforderlichMeist weggelassenErforderlich
ZeilenumbrücheKeineKeineAlle 76 Zeichen
StandardRFC 4648 §4RFC 4648 §5RFC 2045
Typische AnwendungData URI, allgemeine NutzungJWT, URL-Parameter, DateinamenE-Mail-Anhänge, SMTP-Übertragung

Fehlerbilder bei der Base64-Dekodierung im Überblick

FehlerbildTypische UrsacheLösung
InvalidCharacterErrorLeerzeichen, Zeilenumbrüche oder Anführungszeichen im StringWhitespace entfernen oder URL-Safe-Modus wählen
Länge nicht Vielfaches von 4Padding-Zeichen = fehlt oder wurde abgeschnittenPadding durch das Tool automatisch ergänzen lassen
Hieroglyphen / falsche ZeichenFalscher Zeichensatz nach der Byte-RückwandlungUTF-8, ISO-8859-1 oder ASCII ausprobieren
atob schlägt bei Umlauten fehlDirekte Eingabe von Nicht-Latin-1 in atobUTF-8-Wrapper mit encodeURIComponent/atob nutzen
JWT lässt sich nicht dekodierenBase64URL mit -/_ statt +// verwendetURL-Safe-Variante wählen, Padding wird ergänzt
Ergebnis enthält ZeilenumbrücheMIME-Variante mit 76-Zeichen-ZeilenumbrüchenIn den Standard- oder URL-Safe-Modus wechseln

Authoritative References