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

Base64-in-Base64URL-Konverter (URL-sicher)

Fügen Sie Standard-Base64 ein, um die URL-sichere Form zu erhalten: Aus + wird -, aus / wird _, und das =-Padding entfällt, sofern Sie nicht Padding (=) aktivieren.

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 Base64 in Base64URL um

  1. Fügen Sie das Base64 in Eingabe · Base64 ein. Zeilenumbrüche aus umbrochenem Base64 und ein data:...;base64,-Präfix werden automatisch entfernt.
  2. Die URL-sichere Zeichenkette erscheint in Ausgabe · Base64URL.
  3. Aktivieren Sie Padding (=) unter der Ausgabe, wenn der Empfänger das = am Ende behalten möchte.
  4. Ausgabe kopieren. Der Schalter Base64URL → Base64 oder die Seite Base64URL in Base64 wandelt zurück.

Die Eingabe wird in Bytes dekodiert und neu kodiert. Eine Zeichenkette, die kein gültiges Base64 ist, liefert daher einen Fehler statt eines halb umgewandelten Ergebnisses.

Beispiele

Base64Base64URLHinweis
PDw/Pz8+Pg==PDw_Pz8-Pg/ und + ersetzt, == entfernt
eyJyb2xlIjoiYWRtaW4+In0=eyJyb2xlIjoiYWRtaW4-In0JSON mit einem >, ein = entfernt
E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw+cM=E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cMdie PKCE-Challenge aus RFC 7636, Anhang B
+/8=-_8die Bytes fb ff
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9unverändert: kein +, / oder =

Die letzte Zeile ist häufig. Kurzes JSON und ASCII-Text kommen beim Kodieren oft ohne + oder / aus, und wenn die Länge ein Vielfaches von 3 Bytes ist, gibt es auch kein Padding, sodass beide Formen identisch sind. Deshalb kann eine vergessene Umwandlung beim Testen unbemerkt bleiben, bis irgendein Wert zufällig ein + oder / erzeugt.

Zeichen des Standard-Base64, die URLs kaputt machen

Drei Zeichen des Standard-Base64 haben in URLs eine besondere Bedeutung:

  • + steht in Query-Strings für ein Leerzeichen, ?t=a+b kommt in vielen Frameworks also als a b an.
  • / trennt Pfadsegmente, Base64 in einem Pfad kann daher zerteilt oder falsch geroutet werden.
  • = trennt den Namen eines Query-Parameters von seinem Wert und muss sicherheitshalber als %3D geschrieben werden.

RFC 4648, Abschnitt 5, definiert für diesen Fall Base64URL, mit - und _ anstelle von + und / und einem Padding, das entfallen darf. Solche Werte brauchen in Pfaden, Query-Strings, Cookies oder Dateinamen kein Escaping. Der Artikel Base64 und Base64URL im Vergleich geht auf die Details ein.

Wo Base64URL Pflicht ist

  • JWT und JWS. Alle drei Segmente eines JSON Web Token verwenden Base64URL ohne Padding. Der JWT-Decoder liest sie, und Base64 in JWT erklärt das Format.
  • OAuth PKCE. Hash-Tools geben den SHA-256-Digest des Verifiers oft als Standard-Base64 aus, die code_challenge muss aber genau dieser Digest in Base64URL ohne Padding sein. Diese Umwandlung ist der letzte Schritt.
  • WebAuthn und JWK. Credential-IDs, Challenges und die Schlüsselparameter in einem JSON Web Key sind Base64URL.
  • Signierte URLs und Tokens in Links, etwa für Passwort-Resets oder Downloads, bei denen der Wert in einem Pfad oder Query-String steht.

Um Text ohne den Umweg über Standard-Base64 direkt in Base64URL zu kodieren, nutzen Sie den Base64URL-Encoder.

Base64 in Base64URL im Code

import base64
base64.urlsafe_b64encode(b"<<???>>").rstrip(b"=").decode()   # 'PDw_Pz8-Pg'
Buffer.from("PDw/Pz8+Pg==", "base64").toString("base64url");   // 'PDw_Pz8-Pg'
"PDw/Pz8+Pg==".replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");   // same, without Buffer

Pythons urlsafe_b64encode behält das Padding bei, daher das rstrip. Die Kodierung "base64url" in Node lässt es weg. Mehr in den Anleitungen zu Python und Node.js.

Häufige Fragen

Verändert die Umwandlung in Base64URL die Daten?

Nein. Beide Alphabete kodieren dieselben Bytes; nur zwei Zeichen und das Padding unterscheiden sich. Beide Formen ergeben beim Dekodieren identische Bytes.

Entferne ich beim Umwandeln das =-Padding?

Richten Sie sich nach dem Empfänger. JWTs (RFC 7515) und PKCE (RFC 7636) verlangen, dass es fehlt. Manche Bibliotheken akzeptieren beides, und einige ältere Decoder bestehen darauf; aktivieren Sie in dem Fall Padding (=).

Kann ich Base64 mit einem regulären Ausdruck in Base64URL umwandeln?

Ja: s.replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "") in JavaScript. Das setzt voraus, dass die Eingabe eine saubere Zeile ist; entfernen Sie zuerst die Zeilenumbrüche, wenn sie aus einer PEM-Datei oder einer E-Mail stammt.

Ist Prozentkodierung von Standard-Base64 eine Alternative?

Sie funktioniert, aber +, / und = werden zu %2B, %2F und %3D, jeweils drei Zeichen, und der Wert geht trotzdem kaputt, wenn ein System die URL zweimal dekodiert oder + als Leerzeichen liest. Base64URL hat keines der beiden Probleme.