Datei hochladen
  1. base64hub
  2. Web- & Token-Tools
  3. Base64URL in Base64

Base64URL-in-Base64-Konverter: Padding wiederherstellen

Fügen Sie einen Base64URL-String ein, etwa ein JWT-Segment, und erhalten Sie Standard-Base64 mit +, / und der richtigen Anzahl = zurück.

Kostenlos ohne Anmeldung, ohne Limits Lokal kein Upload Aktualisiert 27.10.2026
Eingabe 0Bytes 0 BAusgabe 0

Wird in Ihrem Browser verarbeitet. Diese Seite kann Ihre Daten nirgendwohin senden – woher wir das wissen

So wandeln Sie Base64URL in Base64 um

  1. Fügen Sie das Base64URL in Eingabe · Base64URL ein. Padding ist optional, und Standard-+ und -/ in der Eingabe sind auch kein Problem.
  2. Das Standard-Base64 erscheint in Ausgabe · Base64: - und _ sind zu + und / geworden, und das Padding ist wiederhergestellt.
  3. Unter der Ausgabe ist Padding (=) standardmäßig aktiv; mit Zeilenumbruch lässt sich das Ergebnis bei 64 Zeichen für PEM oder bei 76 für MIME umbrechen.
  4. Ausgabe kopieren. Der Umschalter Base64 → Base64URL oder Base64 in Base64URL geht in die andere Richtung.

Wie viel Padding Sie ergänzen müssen

Base64 arbeitet in Gruppen zu 4 Zeichen. Base64URL lässt meist die = weg, die die letzte Gruppe auffüllen, die Länge verrät also, wie viele Sie zurücksetzen müssen:

Länge mod 4Zu ergänzendes PaddingBeispiel
0keineseyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 (36 Zeichen)
2==PDw_Pz8-Pg (10) wird zu PDw/Pz8+Pg==
3=eyJyb2xlIjoiYWRtaW4-In0 (23) wird zu eyJyb2xlIjoiYWRtaW4+In0=
1ungültigein einzelnes übriges Zeichen kann kein ganzes Byte tragen

Die bekannte Beispiel-Payload eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ hat 70 Zeichen, also einen Rest von 2, und wird zur selben Zeichenkette mit angehängtem ==. Die Padding-Anleitung liefert die vollständige Begründung.

Wann Sie Standard-Base64 brauchen

Viele Decoder akzeptieren nur das Standardalphabet und scheitern auf unterschiedliche Weise, wenn sie Base64URL bekommen:

  • GNU coreutils base64 -d gibt aus, was es bis zum ersten - oder _ dekodiert hat, und dann base64: invalid input.
  • Java Base64.getDecoder() wirft IllegalArgumentException; für URL-sichere Eingaben ist Base64.getUrlDecoder() zuständig.
  • .NET Convert.FromBase64String wirft bei -, _ oder fehlendem = eine FormatException.
  • Python base64.b64decode ist der gefährliche Fall: Standardmäßig verwirft es Zeichen außerhalb des Standardalphabets ohne Fehler. b64decode("PDw_Pz8-Pg==") liefert b'<<\x0f\xcf\xc3\xe0' statt b'<<???>>'.

Der letzte Fall verdient einen Test in jedem Code, der mit Tokens umgeht. Falsche Bytes ohne Exception fallen meist erst viel später auf, als fehlgeschlagene Signaturprüfung oder beschädigte Daten.

Base64URL in Base64 im Code

import base64

def b64url_to_bytes(s: str) -> bytes:
    return base64.urlsafe_b64decode(s + "=" * (-len(s) % 4))

b64url_to_bytes("PDw_Pz8-Pg")                              # b'<<???>>'
base64.b64encode(b64url_to_bytes("PDw_Pz8-Pg")).decode()   # 'PDw/Pz8+Pg=='

-len(s) % 4 ist die Anzahl der fehlenden =: 0, 1 oder 2 bei gültiger Eingabe. urlsafe_b64decode braucht das Padding, deshalb wird es vor dem Aufruf ergänzt.

function b64urlToB64(s) {
  const b = s.replace(/-/g, "+").replace(/_/g, "/");
  return b + "=".repeat((4 - (b.length % 4)) % 4);
}
b64urlToB64("PDw_Pz8-Pg");   // 'PDw/Pz8+Pg=='

In Node.js erledigt Buffer.from(s, "base64url").toString("base64") dasselbe in einem Aufruf. Die Seiten zu Python, Java und C# zeigen die URL-sicheren Decoder der jeweiligen Standardbibliothek.

Häufige Probleme

  • „die letzte Zeichengruppe ist unvollständig“. Die Länge lässt einen Rest von 1. Ein Teil der Zeichenkette ging verloren, oft an einem Zeilenumbruch oder weil eine URL gekürzt wurde.
  • Ein . in der Eingabe. JWTs verbinden drei Base64URL-Segmente mit Punkten. Wandeln Sie ein Segment nach dem anderen um; der JWT-Decoder nimmt das ganze Token.
  • %3D in der Zeichenkette. Der Wert wurde zusätzlich zu Base64URL prozentkodiert. Dekodieren Sie ihn zuerst mit URL-Dekodierung.

Häufige Fragen

Wie ergänze ich das Padding bei Base64URL?

Füllen Sie das Ende mit = auf ein Vielfaches von 4 Zeichen auf: zwei Zeichen bei einem Rest von 2, eines bei einem Rest von 3. Ein Rest von 1 kommt in gültigen Daten nicht vor. Dieser Konverter erledigt das für Sie.

Warum scheitert base64 -d an einem JWT?

GNU base64 -d kennt nur das Standardalphabet und bricht beim ersten - oder _ mit invalid input ab. Wandeln Sie das Segment zuerst hier um oder verwenden Sie basenc --base64url -d, das das URL-sichere Alphabet liest.

Was, wenn die Zeichenkette ein Zeichen zu viel hat?

Ein Base64URL-String, dessen Länge bei Division durch 4 einen Rest von 1 lässt, ist abgeschnitten oder hat ein überzähliges Zeichen. Der Konverter meldet die unvollständige letzte Gruppe; prüfen Sie, wie der Wert kopiert wurde.

Brauche ich Standard-Base64, um ein JWT zu lesen?

Nicht auf dieser Website: Der JWT-Decoder und der Base64URL-Decoder lesen Base64URL direkt. Wandeln Sie in Standard-Base64 um, wenn ein anderes Tool oder eine Bibliothek nur diese Form akzeptiert.