Zum Base64-Decoder springen

RFC 4648 §5 · base64url

Base64URL dekodieren – samt Padding.

Fügen Sie URL-sicheres Base64 ein – aus einem JWT, einem URL-Parameter, einer WebAuthn-Challenge oder der Gmail-API –, und es wird dekodiert, wobei - und _ zurückübersetzt und das fehlende =-Padding ergänzt wird. Fügen Sie ein ganzes JSON Web Token ein, und Header und Payload erscheinen als Tabelle.

Aktualisiert am · Läuft vollständig in Ihrem Browser

Konverter: Base64URL dekodieren

0 Zeichen
Dekodiertes Ergebnis
Typ: — Größe: 0 B
Optionen
Allgemein
Dekodieroptionen

Ctrl+Enter dekodieren Ctrl+Shift+C Ergebnis kopieren Datei einfach auf die Eingabe ziehen, um sie zu laden

So dekodieren Sie Base64URL

  1. 01

    base64url-Wert einfügen

    Fügen Sie einen URL-sicheren Base64-String oder ein komplettes JWT ein. Die Zeichen - und _ sowie fehlendes Padding werden automatisch behandelt.

  2. 02

    Dekodiertes Ergebnis lesen

    Einfache Werte werden in Text oder Bytes dekodiert. Ein JWT wird in Header und Payload aufgeteilt, iat, nbf und exp erscheinen als Datum.

  3. 03

    Kopieren oder weiter dekodieren

    Kopieren oder formatieren Sie das JSON – oder klicken Sie auf In die Eingabe übernehmen, wenn die Payload einen weiteren kodierten Wert enthält.

Base64 vs. Base64URL

Standard-Base64 verwendet + und /, die in URLs und Dateinamen eine Bedeutung haben, und füllt mit = auf, das in einem Query-String prozentkodiert werden muss. Base64URL, definiert in Abschnitt 5 von RFC 4648, tauscht genau diese Zeichen aus, damit der Wert unverändert in einer URL reisen kann:

Unterschiede zwischen Standard-Base64 und Base64URL
Base64Base64URL
Wert 62+-
Wert 63/_
Padding= erforderlichmeist weggelassen
Definiert inRFC 4648 §4RFC 4648 §5

Die übrigen 62 Zeichen sind identisch – die Umwandlung ist also ein einfacher Zeichentausch plus Padding.

Fehlendes Padding wiederherstellen

Viele strikte Decoder lehnen Eingaben ohne Padding ab. Die Regel zum Ergänzen hängt nur von der Länge des Strings modulo 4 ab:

  • Rest 0 – kein Padding nötig;
  • Rest 2 – == anhängen;
  • Rest 3 – = anhängen;
  • Rest 1 – in gültigem Base64 unmöglich: Der Wert ist abgeschnitten.

Dieser Decoder wendet die Regel für Sie an und meldet einen abgeschnittenen Wert, statt stillschweigend Unsinn zu liefern.

Wo Ihnen base64url begegnet

  • JSON Web Tokens – Header, Payload und Signatur sind drei base64url-Segmente, durch Punkte verbunden. Die Signatur wird angezeigt, aber nicht geprüft, denn dafür wäre der Schlüssel nötig.
  • WebAuthn und Passkeys – Challenges, Credential-IDs und Client-Daten.
  • OAuth PKCE – die code_challenge ist ein base64url-kodierter SHA-256-Digest.
  • Gmail-API – Nachrichtentexte und Anhänge sind base64url-kodiert.
  • Kurze IDs und Tokens in URLs, Cookies und Dateinamen.

base64url im Code dekodieren

# Python: urlsafe_b64decode still needs the padding back
import base64
def b64url_decode(s: str) -> bytes:
    return base64.urlsafe_b64decode(s + "=" * (-len(s) % 4))

// Node.js 16+
Buffer.from(token, "base64url").toString("utf8");

// Go
base64.RawURLEncoding.DecodeString(s)

// Java 8+: the URL decoder accepts unpadded input
Base64.getUrlDecoder().decode(s);

Für Standard-Base64 und weitere Sprachen siehe die Hauptseite Base64 dekodieren.

Weitere Decoder

Weitere Wege, Base64 zu dekodieren.

Fragen

Base64URL dekodieren: häufige Fragen.

Wie dekodiere ich Base64URL?

Ersetzen Sie - durch + und _ durch /, ergänzen Sie =-Padding, bis die Länge ein Vielfaches von vier ist, und dekodieren Sie dann wie normales Base64. Diese Seite erledigt alle drei Schritte automatisch: Wert einfügen, und das Ergebnis erscheint sofort.

Ist Base64URL dasselbe wie URL-Kodierung?

Nein. URL-Kodierung (Prozentkodierung) maskiert einzelne Zeichen als %XX. Base64URL ist eine Base64-Variante, die Bytes in ein URL-sicheres Alphabet übersetzt. Enthält ein Wert %2B oder %3D, ist es prozentkodiertes Base64 – lösen Sie zuerst die Prozentkodierung auf.

Kann ich mit diesem Tool ein JWT dekodieren?

Ja. Fügen Sie das ganze Token ein, und Header und Payload werden aus base64url dekodiert und als Tabelle angezeigt, Zeitstempel als Datum. Die Signatur wird angezeigt, aber nicht geprüft, denn dafür wäre der geheime oder öffentliche Schlüssel nötig.

Warum meldet Python bei base64url „Incorrect padding“?

base64.urlsafe_b64decode erwartet das =-Padding, das base64url meist weglässt. Hängen Sie vor dem Dekodieren "=" * (-len(s) % 4) an den String an, wie im Beispiel auf dieser Seite.