Base64 ist eine Kodierung, keine Verschlüsselung – und diese Verwechslung hat schon Passwörter „geschützt“, die jeder in zwei Sekunden lesen konnte. Base64 macht aus beliebigen Bytes einen Text aus 64 harmlosen Zeichen, damit Binärdaten dort durchpassen, wo nur Text erlaubt ist. Dieser Leitfaden erklärt, wie das funktioniert, wo Sie es täglich sehen und wann es das falsche Werkzeug ist.
Wie Base64 funktioniert
Drei Bytes (24 Bit) werden in vier Gruppen à 6 Bit zerlegt; jede Gruppe ergibt ein Zeichen aus dem Alphabet A–Z, a–z, 0–9, + und /. Bleibt am Ende weniger als drei Bytes übrig, füllt = auf. „Hi“ wird zu SGk=, „Hallo“ zu SGFsbG8=. Weil aus 3 Bytes 4 Zeichen werden, wächst jede Datei um 33 % – der Preis dafür, dass sie in JSON, XML oder E-Mail-Text passt.
Wo Base64 Ihnen begegnet
- E-Mail-Anhänge: SMTP überträgt nur Text; jeder Anhang ist Base64.
- Data-URIs:
<img src="data:image/png;base64,iVBOR…">bettet kleine Bilder direkt in HTML oder CSS ein – kein zusätzlicher Request, aber 33 % mehr Bytes und kein Caching. - JWT-Tokens: Header und Payload sind Base64url – lesbar für jeden, der das Token hat. Deshalb gehören keine Geheimnisse hinein.
- APIs und Basic Auth:
Authorization: Basic dXNlcjpwYXNzist user:pass in Base64 – nur über HTTPS sicher. - Konfigurationsdateien: Zertifikate, Kubernetes-Secrets, Zwischenablage-Daten.
Der Base64-Encoder kodiert und dekodiert Text und Dateien im Browser, UTF-8-sicher, und erzeugt fertige Data-URIs.
Base64 vs. Base64url
Standard-Base64 enthält +, / und =, die in URLs Sonderbedeutung haben. Base64url ersetzt sie durch - und _ und lässt das Padding weg. JWT, OAuth-States und Dateinamen nutzen Base64url; wer die falsche Variante dekodiert, bekommt Müll oder Fehler.
Warum Base64 keine Verschlüsselung ist
Es gibt keinen Schlüssel. Jeder kann Base64 dekodieren, mit jedem Tool, in jeder Sprache. Ein Passwort in Base64 ist ein Passwort im Klartext mit Umweg. Für Vertraulichkeit braucht es Verschlüsselung (AES, RSA); Base64 kommt danach, um das verschlüsselte Ergebnis transportfähig zu machen.
Häufige Fragen
Warum sind Umlaute nach dem Dekodieren kaputt?
Der Text wurde als Latin-1 kodiert und als UTF-8 dekodiert oder umgekehrt. Immer UTF-8 auf beiden Seiten.
Wann sollte ich Bilder als Data-URI einbetten?
Nur unter etwa 2 KB (Icons, Sprites). Alles Größere als Datei ausliefern – die 33 % Overhead und das fehlende Caching kosten mehr als der gesparte Request.
Wie erkenne ich Base64?
Nur A–Z, a–z, 0–9, + und /, Länge ein Vielfaches von 4, am Ende null bis zwei =.
Kostenlos, läuft im Browser, nichts wird hochgeladen, keine Anmeldung.
Weiterlesen
Mehr aus Entwickler- & Code-Tools.


