Skip to content

Glossary

Base64

Binär-zu-Text-Kodierung

By Published Updated

Base64 ist ein Kodierungsverfahren, das beliebige Binärdaten mithilfe von 64 ASCII-Zeichen darstellt: die Großbuchstaben A-Z, die Kleinbuchstaben a-z, die Ziffern 0-9 sowie die Symbole + und /. Mit dem Zeichen = wird auf ein Vielfaches von 4 Byte aufgefüllt. Definiert in RFC 4648.

Drei Eingabe-Bytes werden zu vier Base64-Zeichen kodiert, sodass die kodierte Form rund 33 % größer ist als die Quelle. Kodierung und Dekodierung sind beide deterministisch und exakt – es gibt keinen Qualitätsverlust, nur eine Vergrößerung der Datenmenge.

Die wichtigsten Anwendungsfälle:

  • Einbetten von Binärdaten in reine Textprotokolle. E-Mail (MIME-Anhänge), JSON (wo Binärfelder nicht nativ erlaubt sind), Data-URIs in HTML/CSS.
  • JWT (JSON Web Token). JWT-Payloads werden Base64-kodiert (genauer base64url, siehe unten), damit sie sicher in HTTP-Header und URLs passen.
  • Speichern von Binärdaten in Datenbanken oder Konfigurationsdateien wenn der native Spaltentyp umständlich wäre (z. B. SQLite- BLOB-Spalten funktionieren, erfordern aber Behandlung auf Treiberebene; eine TEXT-Spalte mit Base64 ist portabler).

Base64url ist eine im selben RFC definierte Variante, die + durch - und / durch _ ersetzt. Diese beiden Ersetzungen machen die kodierten Daten URL-sicher – weder - noch _ benötigt Prozentkodierung in einer URL. JWT und moderne Web-APIs verwenden durchgängig base64url.

Kodieren oder dekodieren Sie im Browser mit unserem Base64-Werkzeug, das UTF-8-Text korrekt verarbeitet (die JavaScript-Primitiven btoa / atob tun das nicht).

Durchgerechnetes Beispiel

Kodieren wir die drei Byte lange ASCII-Zeichenkette “Man”. Die Bytes sind 0x4D 0x61 0x6E, binär 01001101 01100001 01101110. Verkettet man die 24 Bit und teilt sie in vier 6-Bit-Gruppen: 010011 010110 000101 101110 = 19, 22, 5, 46. Das Base64-Alphabet bildet diese Indizes auf T, W, F, u ab – ergibt “TWFu”. Kein Padding nötig, weil die Eingabelänge (3 Byte) bereits ein Vielfaches von 3 war. Kodieren wir nun “Ma” (2 Byte): die Bits sind 01001101 01100001, mit zwei Null-Bits auf 18 Bit aufgefüllt, geteilt in drei 6-Bit-Gruppen 010011 010110 000100 = 19, 22, 4 = T, W, E. Ein = kennzeichnet das fehlende dritte Zeichen der Gruppe: “TWE=”. Die Dekodierung kehrt den Vorgang um und verwirft das Padding. Die 33-prozentige Aufblähung entspricht genau dem Verhältnis 4/3 – aus je 3 Byte Eingabe werden 4 Byte Ausgabe.

Wann und warum es zählt

Base64 zählt immer dann, wenn Binärdaten durch einen Kanal reisen müssen, der nicht druckbare Bytes verstümmelt – SMTP-E-Mail (für 7-Bit-Text ausgelegt), URL-Query-Strings, JSON-Werte, XML-CDATA-Abschnitte, Umgebungsvariablen, YAML-Konfigurationsdateien und Zwischenablage-Übertragungen zwischen Systemen mit unterschiedlicher Kodierung. Der klassische Fehler ist, Base64 dort einzusetzen, wo es nicht nötig ist: Ein Binär-Blob in einer Postgres-bytea-Spalte braucht keine Kodierung, weil das Protokoll Binärdaten nativ verarbeitet, derselbe Blob aber, der über ein SQL-String-Literal eingefügt wird, schon. Der zweite klassische Fehler ist das Gegenteil – ein JPEG als Data-URI in CSS mit Base64 einzubetten, um einen HTTP-Request zu sparen, und dann festzustellen, dass die aufgeblähte Datei größer ist als die Netzwerkersparnis auf HTTP/2-gemultiplexten Verbindungen. Moderne Image-Inlining-Richtlinien ziehen die Grenze meist bei rund 4-8 KB. Quelle: RFC 4648 — Base16, Base32, and Base64 Data Encodings.

Padding und die "="-Zeichen am Ende: weil Base64 je 3 Eingabe-Bytes in 4 Ausgabe-Zeichen packt, erzeugen Eingaben, deren Länge kein Vielfaches von 3 ist, 1 oder 2 Padding-Zeichen am Ende. YQ==dekodiert zu einem einzelnen Byte ("a"); YWI=dekodiert zu zwei Bytes ("ab"); YWJjdekodiert zu drei Bytes ("abc") ohne Padding. Viele Base64-Parser akzeptieren Eingaben ohne Padding, obwohl strikte RFC-Konformität es verlangt – base64url im JWT-Kontext lässt das Padding bewusst weg. Prüfen Sie stets, ob Ihr Encoder/Decoder-Paar sich beim Padding einig ist, besonders beim Brückenschlag zwischen strikten und nachsichtigen Implementierungen.

Warum Base64 keine Verschlüsselung ist: Base64 ist eine deterministische Abbildung, die jeder ohne Schlüssel umkehren kann. Fügt man eine Base64-Zeichenkette in einen Online-Decoder ein, erscheint der Klartext sofort. Es ist eine Kodierung (eine Darstellungsänderung), keine Verschlüsselung (eine Vertraulichkeitstransformation). Das Speichern von Passwörtern, API-Schlüsseln oder personenbezogenen Daten als Base64 in einer Datei, die ein Angreifer lesen könnte, ist funktional gleichbedeutend mit dem Speichern im Klartext. Für Vertraulichkeit nutzen Sie echte Verschlüsselung (AES-GCM, ChaCha20-Poly1305) mit einem soliden Schlüsselmanagement, bevor Sie überhaupt Base64 darüberlegen. Quelle: RFC 4648 — Base16, Base32, and Base64 Data Encodings.

Rechner ausprobieren

Kodieren oder dekodieren Sie jede Zeichenkette oder Datei zu Base64, inklusive der URL-sicheren Variante.

Base64-Werkzeug öffnen →

Frequently asked questions

Was ist Base64?
Base64 ist ein Kodierungsverfahren, das beliebige Binärdaten in eine Zeichenkette aus 64 ASCII-Zeichen (A–Z, a–z, 0–9, +, /) umwandelt. Es bläht die Datengröße um 33 % auf, macht Binärdaten aber sicher einbettbar in reine Textumgebungen wie E-Mail-Texte, JSON und HTTP-Header.
Wie wird Base64 in der Praxis eingesetzt?
JWT-Tokens bestehen aus drei Base64url-kodierten Segmenten, die durch Punkte verbunden sind. Das direkte Einbetten eines Bildes in eine CSS-Datei als Data-URL nutzt Base64. SMTP versendet Anhänge als Base64-Blöcke, weil das Protokoll historisch nur 7-Bit-ASCII verarbeitete.
Was ist der Unterschied zwischen Base64 und Base64url?
Base64url ersetzt das standardmäßige + durch - und / durch _, um die Ausgabe ohne Prozentkodierung in URLs und Dateinamen sicher zu machen. JWT- und OAuth-Tokens verwenden Base64url; E-Mail-Anhänge nutzen Standard-Base64.
Verschlüsselt Base64 Daten?
Nein – Base64 ist eine Kodierung, keine Verschlüsselung. Jeder Decoder kann die ursprünglichen Bytes sofort wiederherstellen. Es dient dazu, Binärdaten textsicher zu machen, nicht dazu, sie zu verbergen oder zu schützen.

Related

Published May 14, 2026 · Last reviewed May 31, 2026