Base64-Kodierungs-Overhead-Rechner
Eingaben
| Binärgröße | 1 MB |
|---|
Base64-Kodierungs-Overhead-Rechner
Binärdatengröße eingeben, um zu sehen, wie groß die Base64-kodierte Ausgabe ist und wie viel zusätzlicher Speicherplatz durch die Kodierung anfällt.
Eingaben
Binäreingabe
Ergebnisse
Geben Sie einen Wert ein, um die Ergebnisse zu sehen.
Kodierte Ausgabe
Größenaufschlüsselung
Base64-Kodierungs-Overhead
Base64 ist ein Binär-zu-Text-Kodierungsschema, das beliebige Binärdaten mithilfe von 64 druckbaren ASCII-Zeichen darstellt. Es ist das Standardverfahren, um Binärinhalte in rein textbasierten Kanälen zu übertragen — E-Mail-Anhänge, Data-URIs in HTML, PEM-Zertifikate und JSON-API-Nutzdaten setzen alle darauf. Die Kodierung ist verlustfrei und umkehrbar, vergrößert die Datenmenge jedoch um etwa ein Drittel.
Funktionsweise der Base64-Kodierung
Base64 liest Binärdaten in 3-Byte-Gruppen (24 Bits) und ordnet jede Gruppe vier Zeichen zu, von denen jedes 6 Bits trägt:
Jedes der 64 Zeichen steht für einen Wert von 0 bis 63, aus dem Zeichensatz A–Z, a–z, 0–9, + und /. Die Ausgabe enthält garantiert keine Steuerzeichen, Null-Bytes oder Bytes über 127 — sicher für jeden ASCII-kompatiblen Transport.
Größenformel
Da aus je 3 Eingabe-Bytes 4 Ausgabe-Bytes werden, beträgt die kodierte Größe:
Die Aufrundung berücksichtigt Eingaben, deren Länge kein Vielfaches von 3 ist, indem die letzte Gruppe mit einem oder zwei =-Zeichen aufgefüllt wird.
Der Overhead als Bruchteil der ursprünglichen Größe beträgt:
Bei Eingaben, die ein genaues Vielfaches von 3 Bytes sind, ergibt sich .
Rechenbeispiel
Eine 1-MB-Binärdatei (1.000.000 Bytes):
Praktische Bedeutung
E-Mail und MIME. Anhänge werden Base64-kodiert in den Nachrichtenrumpf eingebettet, weshalb ein 3-MB-PDF-Anhang die E-Mail-Größe auf etwa 4 MB erhöht.
Data-URIs. Das Einbetten eines 200-KB-PNG als Data-URI in eine HTML- oder CSS-Datei erzeugt etwa 267 KB Text und erhöht damit das Seitengewicht. Bei kleinen Symbolen entfällt dadurch eine zusätzliche HTTP-Anfrage; bei großen Bildern überwiegt der Nachteil in der Regel.
JSON-APIs. Binäre Nutzdaten (Bilder, Audio-Ausschnitte, kryptografische Signaturen) werden häufig Base64-kodiert, bevor sie in JSON-Zeichenketten eingefügt werden, da JSON keinen nativen Binärtyp hat. Bei der Planung von Nutzdatengrößen ist der Kodierungs-Overhead zu berücksichtigen.
URL-sicheres Base64. Manche Systeme ersetzen + durch - und / durch _, um eine Ausgabe zu erzeugen, die in URL-Pfadsegmenten und Abfrageparametern ohne Prozent-Kodierung sicher ist. Die Größenberechnung ist identisch.
Kompressionsverhältnis-Rechner hilft zu prüfen, ob eine Kompression vor der Kodierung den Overhead teilweise ausgleichen kann — komprimierte Daten lassen sich pro Byte oft effizienter kodieren.
Zahlenbasis-Konverter ist nützlich, wenn mit den hexadezimalen oder binären Darstellungen gearbeitet wird, die Base64 letztlich kodiert.
Häufig gestellte Fragen (FAQ)
Warum verursacht Base64 etwa 33 % Overhead?
Base64 kodiert jeweils 3 Bytes Binärdaten als 4 druckbare ASCII-Zeichen. Drei Bytes enthalten 24 Bits Information; vier Base64-Zeichen enthalten ebenfalls 24 Bits (je 6 Bits), aber jedes Zeichen belegt in Textform ein vollständiges Byte.
Das Ergebnis ist, dass 3 Bytes zu 4 Bytes werden — eine Zunahme von genau einem Drittel, also etwa 33,3 %. Wenn die Eingabelänge kein Vielfaches von 3 ist, werden Auffüllzeichen (=) hinzugefügt, um die letzte 4-Zeichen-Gruppe zu vervollständigen, was den Overhead geringfügig über 33 % heben kann.
Wann und warum wird Base64-Kodierung verwendet?
Base64 konvertiert Binärdaten in eine sichere Teilmenge druckbarer ASCII-Zeichen, sodass sie ohne Beschädigung durch reine Text-Kanäle übertragen werden können. Häufige Anwendungsfälle sind: direkte Einbettung von Bildern oder Schriften in HTML und CSS (Data-URIs), Versand binärer E-Mail-Anhänge (MIME), Kodierung kryptografischer Schlüssel und Zertifikate (PEM-Format) sowie Übertragung binärer Nutzdaten in JSON-APIs.
Der 33-%-Overhead ist der akzeptierte Preis für eine garantiert textsichere Übertragung.
Wie verhält sich Base64 im Vergleich zur Hexadezimalkodierung?
Hexadezimalkodierung (Basis 16) stellt jedes Byte als zwei Hexadezimalzeichen dar und verdoppelt damit stets die Datenmenge — 100 % Overhead. Base64 verwendet 64 Zeichen und kodiert 6 Bits pro Zeichen statt 4, was erlaubt, dieselben Daten in nur 4/3 der Zeichenanzahl statt in doppelt so vielen zu kodieren.
Base64 ist die Standardwahl, wenn die Ausgabegröße wichtig ist; Hexadezimalkodierung wird bevorzugt, wenn menschliche Lesbarkeit oder Fehlersuche im Vordergrund stehen, da jedes Paar von Hexadezimalziffern direkt und offensichtlich einem Byte entspricht.
Was bedeuten die =-Zeichen am Ende einer Base64-Ausgabe?
Base64 verarbeitet Eingaben in 3-Byte-Gruppen. Wenn die letzte Gruppe nur 1 Byte enthält, werden zwei =-Zeichen angehängt; bei 2 Bytes wird eines angehängt. Dadurch ist die Ausgabelänge stets ein Vielfaches von 4 Zeichen, was die Dekodierung vereinfacht. Die Auffüllzeichen enthalten keine Information — manche Systeme lassen sie weg (z. B. URL-sicheres Base64) und rekonstruieren sie beim Dekodieren aus der Ausgabelänge.