Was ist Base64?
Base64 ist ein Kodierungsschema, das Binardaten in eine Zeichenkette aus 64 druckbaren ASCII-Zeichen umwandelt. Die 64 Zeichen sind: A-Z, a-z, 0-9, + und /, sowie = als Auffullung.
Es wurde entwickelt, um ein bestimmtes Problem zu losen: Viele Transportprotokolle und Speichersysteme wurden fur Text und nicht fur beliebige Binardaten entwickelt. Wenn Sie binare Inhalte (Bilder, Dateien, Schlussel) durch einen nur-Text-Kanal ubertragen mussen, ist Base64 die Standardlosung.
Funktionsweise (vereinfacht)
Base64 nimmt jeweils 3 Bytes (24 Bit) der Eingabe und kodiert sie als 4 Zeichen. Das bedeutet:
- 3 Byte Eingabe ergeben 4 Zeichen Ausgabe
- Jede Base64-kodierte Zeichenkette ist etwa 33 % grosser als das Original
Der Prozess ist deterministisch und umkehrbar, es handelt sich um eine Kodierung, nicht um Verschlusselung. Jeder kann eine Base64-Zeichenkette zuruck in die ursprunglichen Bytes dekodieren.
Haufige Anwendungsfalle
1. Bilder in HTML oder CSS einbetten
Anstatt auf eine externe Bilddatei zu verweisen, konnen Sie sie direkt einbetten:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUh..." />
Dies vermeidet eine HTTP-Anfrage, was kleine Symbole oder inline-Bilder beschleunigen kann. Der Nachteil: Die HTML-Datei wird grosser und das Bild kann nicht unabhangig gecacht werden.
2. JSON Web Tokens (JWTs)
JWTs verwenden Base64URL (eine Variante, die + durch - und / durch _ ersetzt), um Header und Nutzlast zu kodieren. Das macht den Token in URLs und HTTP-Headern verwendbar, ohne URL-Kodierungsprobleme.
3. E-Mail-Anhange (MIME)
E-Mail-Protokolle waren ursprunglich nur fur Text ausgelegt. MIME (Multipurpose Internet Mail Extensions) verwendet Base64, um Binardateien, PDFs, Bilder, Word-Dokumente, zu kodieren, damit sie sicher durch die E-Mail-Infrastruktur transportiert werden konnen.
4. API-Authentifizierung
Die einfache HTTP-Authentifizierung kodiert Anmeldeinformationen als Benutzername:Passwort in Base64:
Authorization: Basic dXNlcjpwYXNzd29yZA==
Wichtig: Das ist keine Verschlusselung. Die Anmeldeinformationen sind trivial dekodierbar. HTTPS sorgt hier fur Sicherheit, nicht Base64.
5. Binardaten in JSON oder Datenbanken speichern
JSON hat keinen nativen Binardatentyp. Base64 ist die Standardmethode, um Binardaten (Symbole, kryptografische Schlussel, Dateiinhalte) in eine JSON-Nutzlast oder eine Textspalte in einer Datenbank einzubetten.
Was Base64 NICHT ist
Base64 ist keine Verschlusselung. Es bietet null Sicherheit. Verwenden Sie es nie, um sensible Daten zu verschleiern. Base64 ist keine Komprimierung. Es macht Daten grosser. Base64 ist kein Hashing. Es ist vollstandig umkehrbar.
Das sind weit verbreitete Missverstandnisse. Base64 hat nur eine Aufgabe: Umwandlung von Binar- in Textformat.
URL-sicheres Base64 versus Standard-Base64
Standard-Base64 verwendet + und /, die in URLs eine besondere Bedeutung haben. Base64URL ersetzt sie durch - und _, sodass die Ausgabe in Abfragezeichenketten und URL-Pfadsegmenten ohne Prozentkodierung sicher verwendet werden kann. Bei der Arbeit mit JWTs oder URL-Tokens immer Base64URL verwenden.
Kodierung und Dekodierung im Browser
Sie konnen Base64-Zeichenketten ohne Werkzeuge oder Bibliotheken kodieren und dekodieren, indem Sie den Base64-Encoder/Decoder auf dieser Seite verwenden, fugen Sie Ihren Text oder Inhalt ein und konvertieren Sie sofort, ohne Daten an Server zu senden.
In JavaScript: btoa(str) kodiert, atob(str) dekodiert. In Python: base64.b64encode(bytes) und base64.b64decode(str).
Kurz zusammengefasst
Base64 ist eine Binar-zu-Text-Kodierung, die Binardaten fur textbasierte Systeme sicher macht. Es erscheint in JWTs, E-Mail-Anhangen, eingebetteten Bildern und API-Authentifizierungsheadern. Es verursacht ca. 33 % Mehrgrosse und bietet allein keine Sicherheit. Es wird verwendet, wenn ein Protokoll oder System eine textbasierte Darstellung von Binardaten erfordert.