Skip to main content
Zum Hauptinhalt springen
Entwicklung8. April 2026 13 Min. Lesezeit

Base64-Kodierung erklärt: Wann und wie

Base64 verwandelt Binärdaten in sicheren ASCII-Text, ist aber keine Verschlüsselung und kostet 33 % Größe. Ein vollständiger Leitfaden zu Funktionsweise, Varianten und Einsatz.

Kodieren oder dekodieren Sie Base64, Base64URL, Hex und mehr mit dem Encoder/Dekoder – lokal in Ihrem Browser.

Was Base64 ist

Base64 ist eine Binär-zu-Text-Kodierung, die Binärdaten mit 64 druckbaren ASCII-Zeichen darstellt: A-Z, a-z, 0-9, + und /.

Sie existiert, weil viele Kanäle – E-Mail, URLs, JSON, HTTP-Header – für Text ausgelegt sind und Binärbytes unterwegs verstümmelt, geteilt oder fehlinterpretiert werden können.

Kodierung ist keine Verschlüsselung. Jede Person kann Base64 sofort dekodieren; es ändert die Darstellung, nicht die Vertraulichkeit. Behandeln Sie Base64 als Verpackung und nutzen Sie echte Verschlüsselung, wann immer Geheimhaltung zählt.

Wie die Kodierung funktioniert

Base64 verarbeitet Eingaben in Gruppen von 3 Bytes (24 Bit). Jede Gruppe wird zu 4 Zeichen à 6 Bit, abgebildet über das Base64-Alphabet.

Ist die Eingabelänge kein Vielfaches von 3, wird die letzte Gruppe mit einem oder zwei „=“-Zeichen aufgefüllt, damit die Ausgabelänge ein Vielfaches von 4 bleibt.

Alle 3 Bytes werden zu 4 Zeichen – deshalb ist die Ausgabe etwa 4/3 der Eingabe, ein Overhead von 33 % vor Zeilenumbrüchen oder Trennzeichen.

# 3 Bytes: 0x4d 0x61 0x6e -> 'Man'
# 24 Bits in 6-Bit-Gruppen:
# 010011 010110 000101 101110 -> T W F u
# JavaScript
globalThis.btoa('Man'); // 'TWFu'
globalThis.atob('TWFu'); // 'Man'

Standard-Base64 vs. Base64URL

Das Standardalphabet nutzt + und /, die in URLs problematisch sind: + wird in Query-Strings als Leerzeichen interpretiert, / teilt Pfadsegmente.

Base64URL (RFC 4648 §5) ersetzt + durch - und / durch _ und lässt Padding in vielen Implementierungen weg. Es ist die Variante, die JWT-Segmente verwenden.

Die Vermischung beider ist ein klassischer Integrationsfehler: Standard-Base64 bricht in URLs, und Base64URL kann in Werkzeugen scheitern, die das Standardalphabet erwarten. Wissen Sie, welche Variante Ihr Kanal verlangt.

EigenschaftStandard-Base64Base64URL
AlphabetA-Z a-z 0-9 + /A-Z a-z 0-9 - _
PaddingErforderlich (=)Oft weggelassen
URL-sicherNeinJa
Verwendet vonE-Mail, den meisten WerkzeugenJWT, Web-APIs, Dateinamen

Wann Base64 das richtige Werkzeug ist

  • Kleine Bilder oder Icons als Data-URIs in HTML/CSS einbetten
  • Binäre Anhänge durch textbasierte Protokolle übertragen (E-Mail, JSON-Felder)
  • Kryptografisches Material – Schlüssel, Signaturen, Hashes – in Konfiguration und Headern darstellen
  • JWT-Header- und Payload-Segmente (Base64URL)
  • Binärdaten in textbasierten Formaten wie JSON oder CSV speichern
  • Debugging – eine Payload aus einer Logzeile dekodieren und prüfen

Wann Base64 NICHT verwendet werden sollte

Base64 kostet 33 % Größe und zusätzliche CPU-Arbeit. Für große Binärdateien bevorzugen Sie Binärkanäle: Multipart-Uploads, Typed Arrays oder rohe HTTP-Bodies.

Für Bilder ist eine Data-URI nur bei sehr kleinen Assets effizient. Jenseits weniger Kilobyte überwiegen Größen-Overhead und Base64-Aufblähung meist den gesparten Request.

Und entscheidend: Base64 ist keine Sicherheitsmaßnahme. Kodierte Secrets sind trivial lesbar – brauchen Sie Vertraulichkeit, verschlüsseln Sie zuerst und kodieren Sie dann den Chiffretext, wenn der Kanal Text verlangt.

Warnung: Behandeln Sie Base64 niemals als Verschleierung für Secrets und verwenden Sie es niemals statt authentifizierter Verschlüsselung. „Kodiert“ ist nicht „verschlüsselt“.

Hex, Base32 und Co.

KodierungAusgabegröße vs. BinärAm besten für
Hex2xHashes, menschliche Prüfung, kompakter Text
Base641,33xDichter Texttransport von Binärdaten
Base321,6xGroß-/kleinschreibungsunabhängige, fehlertolerante Kontexte
ASCII851,25xAltformate und Spezialwerkzeuge

Kodierung in der Praxis

// Binär -> Base64 im Browser
const bytes = new Uint8Array([77, 97, 110]); // 'Man'
let binary = '';
bytes.forEach(b => (binary += String.fromCharCode(b)));
const encoded = btoa(binary); // 'TWFu'
// Base64 -> Uint8Array
const decoded = atob(encoded);
const result = Uint8Array.from(decoded, c => c.charCodeAt(0));
// Node.js
Buffer.from('Man').toString('base64'); // 'TWFu'
Buffer.from('TWFu', 'base64').toString(); // 'Man'

FAQ

Q.Warum ist Base64 größer als das Original?

A.Weil 3 Eingabebytes (24 Bit) zu 4 Ausgabezeichen (ebenfalls 24 Bit Nutzlast) werden, ist die Ausgabe 4/3 der Eingabe – etwa 33 % größer, vor Padding und Zeilenumbrüchen.

Q.Was bedeutet das =-Padding?

A.Die =-Zeichen füllen die letzte Gruppe auf, damit die Ausgabelänge ein Vielfaches von 4 ist. Sie tragen keine Daten. Base64URL lässt es oft weg, weil die Länge dort nicht zählt.

Q.Ist Base64 Verschlüsselung?

A.Nein. Base64 ist reversible Kodierung ohne Schlüssel. Wer den kodierten Wert sieht, kann ihn dekodieren. Für Geheimhaltung nutzen Sie authentifizierte Verschlüsselung (AES-GCM, ChaCha20) und kodieren den Chiffretext nur, wenn der Kanal Text verlangt.

Q.Warum bricht mein Base64-String in einer URL?

A.Die Zeichen + und / sind nicht URL-sicher: + kann zu einem Leerzeichen werden und / den Pfad verändern. Nutzen Sie Base64URL (- und _) für alles, was durch URLs, Query-Strings oder Dateinamen wandert.

Q.Lohnen sich Data-URIs für Bilder?

A.Für winzige Assets – wenige hundert Bytes bis ein paar Kilobyte – sparen Data-URIs einen Request und können schneller sein. Für größere Bilder macht der 33-%-Overhead plus verlorenes Browser-Caching meist eine separate Datei zur besseren Wahl.

Q.Warum nutzt JWT Base64URL ohne Padding?

A.JWT-Segmente erscheinen in URLs und Headern, wo +, / und = ungünstig sind. Das URL-sichere Alphabet von Base64URL plus unpaddete Form hält Tokens kompakt und eindeutig.

Referenzen

  • RFC 4648 – The Base16, Base32, and Base64 Data Encodings: https://www.rfc-editor.org/rfc/rfc4648
  • RFC 7515 – JSON Web Signature (JWS), Base64URL-Nutzung: https://www.rfc-editor.org/rfc/rfc7515
  • MDN – btoa() und atob(): https://developer.mozilla.org/en-US/docs/Glossary/Base64
  • MDN – Data-URIs: https://developer.mozilla.org/en-US/docs/Web/URI/Reference/Schemes/data

Jetzt kodieren oder dekodieren

Base64, Base64URL, Hex, URL und HTML, vollständig clientseitig.

Eine Kodierung, keine Sicherheitskontrolle

Base64 ist der Standardweg, um Binärdaten durch Textkanäle zu bewegen – denken Sie nur an die 33 % Größennachteil, die URL-sichere Variante und daran, dass es keinerlei Vertraulichkeit bietet.

Kodieren und dekodieren Sie lokal mit dem Encoder/Dekoder – Base64, Base64URL, Hex, URL und HTML, alles in Ihrem Browser.

Base64Base64-EncoderBase64-DekodierungBase64URLData URIBinär zu TextBase64-PaddingWann Base64 verwenden