Base64 kodieren und dekodieren

Text einfügen, Richtung und Format wählen, Ergebnis kopieren: Das Tool wandelt Text in Base64 oder Base64url um und zurück – Umlaute und Emoji korrekt als UTF-8 – und beherrscht die URL-Kodierung mit Prozentzeichen in allen drei gängigen Varianten. Ungültige Eingaben werden mit Position gemeldet.

Zum Dekodieren den Base64- oder %-kodierten Text einfügen. Zeilenumbrüche in Base64 werden ignoriert.

Ihr Text bleibt in Ihrem Browser – er wird nicht gesendet, nicht gespeichert und nicht in die Adresszeile geschrieben.

Ergebnis

Ergebnis
R3LDvMOfZSBhdXMgS8O2bG4hIPCfkYs=
Umfang
17 Zeichen = 23 Bytes UTF-8 → 32 Zeichen

So wird gerechnet

Base64 stellt beliebige Bytes mit nur 64 druckbaren Zeichen dar (A–Z, a–z, 0–9, + und /). Je 3 Bytes werden zu 4 Zeichen; fehlt am Ende etwas, füllen ein oder zwei Gleichheitszeichen auf (Padding). Der Code wird dadurch rund ein Drittel länger als das Original. So lassen sich Binärdaten durch Kanäle schicken, die nur Text vertragen – E-Mail-Anhänge, Data-URLs (data:image/png;base64,…), HTTP-Basic-Auth oder JSON.

Base64 ist keine Verschlüsselung. Jeder kann den Text ohne Schlüssel zurückverwandeln. Zugangsdaten gehören nicht ungeschützt in Base64.

Base64 und Base64url

Das Plus und der Schrägstrich haben in URLs und Dateinamen eine eigene Bedeutung. Base64url (RFC 4648 § 5) ersetzt sie deshalb durch Minus und Unterstrich und lässt das Padding meist weg – so kodiert sind zum Beispiel JSON Web Tokens (JWT). Beispiel: die Bytes FB FF ergeben +/8= in Base64 und -_8 in Base64url.

Warum UTF-8 wichtig ist

Base64 kodiert Bytes, keine Buchstaben. Das Tool wandelt Text deshalb zuerst in UTF-8 um: „ü“ wird zu zwei Bytes, ein Emoji zu vier. Die im Browser eingebaute Funktion btoa() kann das nicht und bricht bei Umlauten mit einem Fehler ab. Ergeben die dekodierten Bytes keinen gültigen UTF-8-Text, zeigt das Tool sie als Hexadezimalwerte an.

URL-Kodierung: drei Varianten

Jedes Zeichen außerhalb des erlaubten Vorrats wird als % mit zwei Hexadezimalziffern je UTF-8-Byte geschrieben (RFC 3986 § 2.1): Leerzeichen = %20, ä = %C3%A4.

Alle Umwandlungen laufen in Ihrem Browser. Die Eingabe wird nicht gesendet, nicht gespeichert und nicht in die Adresszeile geschrieben.

Häufige Fragen

Wie dekodiere ich Base64?

Richtung „Dekodieren“ und Format „Base64“ wählen, den Code einfügen – der Klartext erscheint sofort. Enthält der Code - und _, ist es Base64url; dann dieses Format wählen.

Ist Base64 eine Verschlüsselung?

Nein. Base64 ist nur eine andere Schreibweise derselben Daten und ohne Schlüssel umkehrbar. Zum Schutz von Daten braucht es echte Verschlüsselung, für Passwörter einen Passwort-Hash.

Warum endet Base64 oft mit = oder ==?

Base64 arbeitet in Gruppen von 3 Bytes. Bleiben am Ende 1 oder 2 Bytes übrig, wird mit == bzw. = aufgefüllt, damit die Länge ein Vielfaches von 4 ist. Base64url lässt dieses Padding meist weg.

Was ist der Unterschied zwischen encodeURI und encodeURIComponent?

encodeURI ist für ganze Adressen gedacht und lässt / ? & = # stehen. encodeURIComponent kodiert auch diese Zeichen und ist richtig für einzelne Parameterwerte – sonst würde ein & im Wert die URL zerlegen.

Warum wird ein Leerzeichen mal %20 und mal + geschrieben?

In Pfaden und nach RFC 3986 steht ein Leerzeichen als %20. HTML-Formulare (application/x-www-form-urlencoded) schreiben es als +. Beim Dekodieren muss man wissen, welche Variante vorliegt – ein echtes Pluszeichen steht dort als %2B.

Wie groß wird eine Datei in Base64?

Rund 4/3 der Originalgröße: aus 3 Bytes werden 4 Zeichen. Ein Bild mit 300 KB wird als Base64 etwa 400 KB groß, mit Zeilenumbrüchen (MIME) noch etwas mehr.

Quellen und Rechtsgrundlagen

Stand:

Passende Werkzeuge