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

Base64URL-Encoder: URL-sicheres Base64 online

Kodieren Sie Text in URL-sicheres Base64: - und _ ersetzen + und /, und das = am Ende entfällt. Das Ergebnis passt ohne weiteres Escaping in eine URL, ein Cookie oder ein Token.

Kostenlos ohne Anmeldung, ohne Limits Lokal kein Upload RFC 4648 Alphabet aus Abschnitt 5 Aktualisiert 27.10.2026
Eingabe 0 BAusgabe 0 BGröße –

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

So kodieren Sie Base64URL

  1. Geben Sie den Text in Eingabe · Text ein oder fügen Sie ihn ein.
  2. Kopieren Sie das Base64URL aus Ausgabe · Base64. URL-sicher (- _) und Ohne Padding (=) sind auf dieser Seite bereits aktiviert.
  3. Will der Empfänger Padding, deaktivieren Sie Ohne Padding (=). Will er Standard-Base64, deaktivieren Sie auch URL-sicher, oder nehmen Sie den Base64-Encoder.
  4. Kopieren Sie die Ausgabe oder laden Sie sie als base64.txt herunter.

Einen Wert dekodieren Sie mit dem Base64URL-Decoder. Base64 in Base64URL wandelt bestehende Zeichenketten zwischen den beiden Alphabeten um.

Was sich gegenüber Standard-Base64 ändert

Nur drei Zeichen unterscheiden sich. Alles andere, auch die Regel „3 Bytes zu 4 Zeichen“, bleibt gleich:

Standard-Base64Base64URL
Wert 62+-
Wert 63/_
Padding= erforderlichmeist weggelassen
Definiert inRFC 4648, Abschnitt 4RFC 4648, Abschnitt 5

Bei vielen kurzen Zeichenketten unterscheiden sich die beiden Varianten nur im Padding. Der Unterschied im Alphabet zeigt sich, sobald eine 6-Bit-Gruppe den Wert 62 oder 63 hat, was Zeichen wie ? und > und viele Nicht-ASCII-Bytes erzeugen:

EingabeStandardBase64URL, ohne Padding
Hi!SGkhSGkh
?>?>Pz4/Pg==Pz4_Pg
subjects?_dc3ViamVjdHM/X2Q=c3ViamVjdHM_X2Q
https://example.com/?q=1aHR0cHM6Ly9leGFtcGxlLmNvbS8/cT0xaHR0cHM6Ly9leGFtcGxlLmNvbS8_cT0x

Base64 vs. Base64URL behandelt die Geschichte und die Unterschiede beim Dekodieren ausführlicher.

Warum URLs ein eigenes Alphabet brauchen

Jedes der drei Standardzeichen hat in einer URL eine Bedeutung. / trennt Pfadsegmente, = trennt im Query-String Namen von Werten, und + wird von Formular-Decodern als Leerzeichen gelesen. Ein Standard-Base64-Wert wie a+b/c== in einem Query-Parameter kommt als a b/c== an, wenn nicht jedes Zeichen maskiert wurde. Prozentkodierung behebt das, macht aber aus jedem davon drei Zeichen (%2B, %2F, %3D).

Base64URL wählt zwei Zeichen, die in URLs nicht reserviert sind, und lässt das Padding weg, sodass sich ein Wert unverändert in einen Pfad, einen Query-String, ein Fragment, ein Cookie oder einen Dateinamen einfügen lässt. - und _ sind außerdem anders als / auf jedem gängigen Dateisystem in Dateinamen sicher.

Wo Base64URL verwendet wird

  • JWT und JOSE. Jeder Teil eines JSON Web Token ist Base64URL ohne Padding, definiert in RFC 7515. Der JWT-Decoder liest Tokens; Base64 in JWT erklärt den Aufbau.
  • OAuth PKCE. Die code_challenge ist das Base64URL des SHA-256-Hashs des code_verifier.
  • WebAuthn und Passkeys. Credential-IDs und Challenges werden als Base64URL in JSON übertragen.
  • Links und IDs. Share-Links, signierte URL-Parameter und kurze IDs aus Zufallsbytes nutzen es, um URL-sauber zu bleiben.

Base64URL im Code

Node.js hat eine eingebaute Kodierung base64url, Python eine URL-sichere Funktion, deren Padding Sie selbst entfernen:

// Node.js
Buffer.from("subjects?_d").toString("base64url");   // "c3ViamVjdHM_X2Q"

// Browsers with Uint8Array.prototype.toBase64
new TextEncoder().encode("subjects?_d").toBase64({ alphabet: "base64url", omitPadding: true });
import base64, hashlib

base64.urlsafe_b64encode(b"subjects?_d").rstrip(b"=").decode()   # 'c3ViamVjdHM_X2Q'

# PKCE code_challenge, example from RFC 7636 appendix B
verifier = "dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk"
digest = hashlib.sha256(verifier.encode("ascii")).digest()
base64.urlsafe_b64encode(digest).rstrip(b"=").decode()
# 'E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM'

Mehr unter Base64 in Node.js, JavaScript und Python, die Browser-API unter Uint8Array.toBase64.

Häufige Fragen

Was ist Base64URL?

Die URL- und dateinamensichere Variante von Base64 aus RFC 4648, Abschnitt 5. Sie verwendet - und _ als letzte zwei Zeichen des Alphabets statt + und / und wird meist ohne =-Padding geschrieben.

Warum nicht einfach normales Base64 prozentkodieren?

Das funktioniert, kostet aber drei Zeichen für jedes +, / und =, und ein vergessenes Escape macht beim Parsen des Query-Strings aus + ein Leerzeichen. Base64URL vermeidet beide Probleme.

Soll ich das =-Padding behalten?

JWT und die meisten URL-sicheren Formate lassen es weg, weil = in URLs ebenfalls maskiert werden muss und der Decoder das Padding aus der Länge ableiten kann. Behalten Sie es nur, wenn das empfangende System es verlangt: Deaktivieren Sie dann „Ohne Padding“.

Wie erzeuge ich eine PKCE-code_challenge?

Hashen Sie den code_verifier mit SHA-256 und kodieren Sie die 32 Hash-Bytes ohne Padding in Base64URL. Diese Seite kodiert Text, keine Hash-Bytes, erledigen Sie das also im Code; das Snippet unten reproduziert das Beispiel aus RFC 7636.