Base64 Codierung verständlich erklärt: Funktion und Overhead
Base64 ist ein Codierungsverfahren, das beliebige Binärdaten (z. B. Bilder, Zertifikate oder komprimierte Dateien) in eine Zeichenkette übersetzt, die ausschliesslich aus 64 druckbaren ASCII-Zeichen besteht. Dadurch wird verhindert, dass Daten bei der Übertragung über textbasierte Netzwerke und Protokolle (wie E-Mail oder XML) beschädigt werden.
Base64 begegnet Entwicklern an vielen Stellen: in der Nutzlast eines JSON Web Tokens, beim Einbetten eines Zertifikats im PEM-Format (siehe CSR-Generator) oder als Data-URI in CSS. Wichtig ist die klare Abgrenzung: Base64 ist keine Verschlüsselung und auch kein Hashing, sondern eine reine, jederzeit umkehrbare Umformatierung.
Die mathematische Funktionsweise (3 zu 4 Prinzip)
Das Grundprinzip von Base64 besteht darin, je drei Byte (24 Bit) an Binärdaten in vier Base64-Zeichen (je 6 Bit) aufzuteilen.
Binärdaten (3 Byte): [ 8 Bit ] [ 8 Bit ] [ 8 Bit ] = 24 Bit
└─────┬─┘ └─┬───┘ └─┬─────┘
Aufteilung (4 Chunks): [ 6 Bit ] [ 6 Bit ] [ 6 Bit ] [ 6 Bit ] = 24 Bit
└─────┬─┘ └─┬─────┘ └─┬─────┘ └─┬─────┘
Base64-Zeichen: Zeichen1 Zeichen2 Zeichen3 Zeichen4
Der Ablauf im Detail
- Der Eingabetext bzw. die Binärdatei wird als Bit-Strom eingelesen.
- Es werden Blöcke von 24 Bit gebildet.
- Dieser 24-Bit-Block wird in vier Gruppen zu je 6 Bit unterteilt.
- Jeder 6-Bit-Wert (der eine Zahl von 0 bis 63 darstellt) wird anhand einer standardisierten Base64-Zeichentabelle in ein Zeichen übersetzt. Die Tabelle enthält:
- Grossbuchstaben
A–Z(Index 0–25) - Kleinbuchstaben
a–z(Index 26–51) - Ziffern
0–9(Index 52–61) - Die Sonderzeichen
+und/(Index 62 und 63)
- Grossbuchstaben
Padding (Auffüllung mit =)
Da nicht jede Datei exakt durch 3 Byte teilbar ist, werden am Ende der Datei fehlende Bytes mit Nullen aufgefüllt. Um dem Decoder mitzuteilen, wie viele Bytes künstlich hinzugefügt wurden, nutzt Base64 das Gleichheitszeichen (=) als Füllzeichen (Padding) am Ende der Zeichenkette.
Daten-Overhead bei Base64
Durch das Aufteilen von 3 Byte auf 4 Zeichen steigt das übertragene Datenvolumen systematisch an.
- Der Overhead beträgt exakt 33.3 %. Eine Bilddatei von 3 MB wächst nach der Base64-Codierung auf 4 MB an.
- Best Practice: Nutzen Sie Base64 sparsam und betten Sie Bilder nicht unüberlegt inline (z.B. in CSS oder HTML) ein, um die Ladezeiten der Website nicht unnötig zu verlängern.
Codierungsverfahren im Vergleich
Wie effizient eine Text-Codierung Binärdaten darstellt, hängt von der Grösse des Zeichenvorrats ab:
| Verfahren | Zeichenvorrat | Overhead | Typischer Einsatz |
|---|---|---|---|
| Hexadezimal | 16 | +100 % | Hashes, einzelne Bytes |
| Base32 | 32 | +60 % | case-insensitive IDs |
| Base64 | 64 | +33 % | E-Mail, Data-URI, JWT |
| Binär (roh) | – | 0 % | direkte Übertragung |
Beispiel: Eine Zeichenkette codieren
Die Codierung von Klartext zu Base64 lässt sich Schritt für Schritt nachvollziehen:
Eingabe (Text): Hi
ASCII (Bytes): 72 105
Binär: 01001000 01101001
6-Bit-Gruppen: 010010 000110 1001(00)
Base64-Index: 18 6 36
Ausgabe: S G k =
Ergebnis: SGk=
Da nur zwei Byte (16 Bit) vorliegen, wird die letzte Gruppe mit Nullen aufgefüllt und ein = als Padding angehängt.
Der Unterschied: Base64 vs. Base64Url
Das klassische Base64 nutzt die Sonderzeichen + und / sowie das Padding =. Diese Zeichen haben in URLs (HTTP-Adressen) jedoch eine spezielle Bedeutung (z. B. Parameter-Trennung).
- Base64Url löst dieses Problem: Es ersetzt
+durch den Bindestrich-und/durch den Unterstrich_. Das Padding=wird weggelassen. - Anwendung: Base64Url ist das Format, das zwingend für den Aufbau von JSON Web Tokens (JWT) verwendet wird.
[!TIP] Möchten Sie eine Text- oder Bilddatei schnell in Base64 codieren oder eine codierte Zeichenkette wieder in Klartext zurückübersetzen? Nutzen Sie den kostenlosen Base64 Encoder/Decoder auf balou.tools für eine sichere Offline-Konvertierung im Browser.
Häufig gestellte Fragen (FAQ)
Ist Base64 eine Verschlüsselungsmethode?
Nein. Base64 ist eine reine Codierung. Es dient der Formatierung von Daten zur sicheren Übertragung und bietet keinerlei Schutz vor unbefugtem Lesen. Jeder kann Base64-Daten ohne Schlüssel zurückkonvertieren.
Warum wird Base64 bei E-Mails verwendet?
E-Mail-Systeme wurden ursprünglich nur für die Übertragung von einfachem ASCII-Text entwickelt. Binärdateien (wie Bilder oder PDFs) würden bei der Übertragung beschädigt. Base64 codiert diese Dateien in druckbare ASCII-Zeichen.
Wann ist es sinnvoll, Bilder als Base64 Data-URI einzubetten?
Nur für sehr kleine, häufig genutzte Grafiken wie Icons oder Logos, bei denen ein separater HTTP-Request teurer wäre als der 33-prozentige Grössen-Overhead. Für grössere Bilder ist das Einbetten kontraproduktiv, weil die Datei nicht separat gecacht werden kann und das HTML-Dokument aufbläht.
Wie unterscheidet sich Base64 von Hexadezimal-Codierung?
Beide stellen Binärdaten als Text dar, aber mit unterschiedlicher Effizienz. Hexadezimal nutzt nur 16 Zeichen und verdoppelt das Datenvolumen (100 % Overhead), Base64 nutzt 64 Zeichen und fügt nur rund 33 % hinzu. Base64 ist daher kompakter, Hex dafür besser menschenlesbar für einzelne Bytes.