In diesem Artikel
Was ist Base64?
Base64 ist ein Codierungsverfahren, das Binärdaten in eine Zeichenkette aus ASCII-Zeichen umwandelt. Es verwendet 64 sichere Zeichen (A-Z, a-z, 0-9, +, /) zur Darstellung beliebiger Binärdaten und macht diese so sicher für die Übertragung über textbasierte Protokolle wie HTTP-Header, E-Mail (MIME) und JSON.
Base64 ist keine Verschlüsselung — es ist eine Codierung. Jeder kann Base64 ohne Schlüssel zurück in die Originaldaten decodieren. Der Zweck von Base64 besteht darin, Binärdaten durch Systeme zu leiten, die für Text ausgelegt sind, nicht darin, Sicherheit zu bieten.
So funktioniert die Base64-Codierung
Base64 wandelt jede Gruppe von 3 Byte (24 Bit) in 4 Base64-Zeichen (je 6 Bit) um und füllt mit =-Zeichen auf, wenn die Eingabe nicht durch 3 teilbar ist.
- Byte-Gruppierung — die Eingabe-Bytes werden in Dreiergruppen zusammengefasst und in 4 Ausgabezeichen umgewandelt
- Zeichenzuordnung — jede 6-Bit-Gruppe wird auf eines von 64 druckbaren ASCII-Zeichen abgebildet
- Auffüllen (Padding) — =-Zeichen werden hinzugefügt, damit die Ausgabelänge stets ein Vielfaches von 4 ist
Kostenlos testen – keine Registrierung erforderlich
Base64 codieren oder decodieren →Wann Base64 sinnvoll ist
Base64 wird immer dann verwendet, wenn Binärdaten in textbasierte Formate eingebettet werden müssen.
- E-Mail-Anhänge — die MIME-Codierung nutzt Base64, um Binärdateien an E-Mail-Nachrichten anzuhängen
- Data-URIs — bette Bilder direkt in HTML/CSS als data:image/png;base64,... ein, um HTTP-Anfragen zu vermeiden
- API-Authentifizierung — Basic-Auth-Zugangsdaten werden im HTTP-Header Authorization Base64-codiert
Häufig gestellte Fragen
Vergrößert Base64 die Datenmenge?
Ja. Die Base64-Codierung vergrößert die Datenmenge um etwa 33 %, weil aus je 3 Byte Eingabe 4 Byte Ausgabe werden. Das ist ein grundsätzlicher Kompromiss, um Binärdaten textsicher zu machen.
Was ist der Unterschied zwischen Standard-Base64 und URL-sicherem Base64?
Standard-Base64 verwendet + und /, die in URLs eine besondere Bedeutung haben. URL-sicheres Base64 (Base64url) ersetzt + durch - und / durch _, um Zeichenketten zu erzeugen, die sich ohne Prozent-Codierung sicher in URLs und Dateinamen verwenden lassen. JWTs nutzen die Base64url-Codierung.
Wie gehe ich bei Base64 mit Nicht-UTF8-Daten um?
Base64 arbeitet mit rohen Bytes, nicht mit Text. Wenn du Binärdaten wie Bilder oder verschlüsselte Inhalte codierst, behandle sie als Byte-Array statt als Zeichenkette. Verwende in JavaScript Uint8Array oder Buffer und in Python bytes-Objekte, um Codierungsprobleme mit Nicht-UTF8-Daten zu vermeiden.