Alle Artikel

Base64: wozu Kodierung dient und wie sie funktioniert

Base64 ist eine Möglichkeit, beliebige binäre Daten als Text darzustellen, der nur aus Buchstaben, Ziffern und den Zeichen +, / und = besteht. Es komprimiert oder verschlüsselt nichts – das Ergebnis ist etwa ein Drittel größer, und jeder, der den Algorithmus kennt, kann den ursprünglichen Inhalt lesen.

Wie die Kodierung funktioniert

Eingabebytes werden zu Dreiergruppen (24 Bit) zusammengefasst und in vier Sechs-Bit-Blöcke aufgeteilt. Jeder Block entspricht einem Zeichen des Base64-Alphabets (A–Z, a–z, 0–9, +, /). Ist die Länge der Eingabedaten kein Vielfaches von drei Byte, wird am Ende das Füllzeichen = angehängt.

Wozu es gebraucht wird

Viele Protokolle und Formate – E-Mail (MIME), URLs, JSON, XML – sind für Text ausgelegt und können „rohe" Bytes nicht zuverlässig übertragen: Nullbytes, Steuerzeichen oder Byte-Sequenzen, die mit der eigenen Syntax des Formats kollidieren. Base64 umgeht das, indem es beliebige Binärdaten in sicheren Text verwandelt.

Typische Anwendungsfälle

  • E-Mail-Anhänge über MIME.
  • Bilder oder kleine Dateien in einer JSON-API übertragen.
  • Binärdaten in reinen Textfeldern einer Datenbank oder Konfigurationsdatei speichern.
  • Kodierung der Header- und Payload-Teile eines JWT.

Was Base64 NICHT ist

Es ist weder Verschlüsselung noch Hashing. Jeder kann einen Base64-String ohne Schlüssel oder Passwort wieder in die ursprünglichen Daten zurückverwandeln – es ist reines Darstellungsformat, keine Sicherheitsmaßnahme.

Standard- und URL-sicheres Alphabet

Das klassische Base64-Alphabet verwendet die Zeichen + und /, die in URLs und Dateinamen eine besondere Bedeutung haben. Für solche Fälle gibt es die Variante Base64URL, bei der + durch - und / durch _ ersetzt wird. Fügst du das Ergebnis der Standardkodierung ohne zusätzliches Percent-Encoding in eine URL ein, können die Zeichen + und / die Adresse verfälschen oder mit Pfadtrennzeichen kollidieren.

Häufiger Fehler: abgeschnittenes oder „kaputtes" Füllzeichen

Das Zeichen = am Ende der Zeichenkette ist kein Müll, sondern Teil der Kodierung – es zeigt an, wie viele Bytes im letzten Block fehlen. Kopierst du einen Base64-String nicht vollständig oder entfernst du die Füllzeichen manuell, liefert der Decoder eine Fehlermeldung oder ein abgeschnittenes Ergebnis. Manche Systeme (etwa JWT) lassen = bewusst weg – dann muss die Länge vor dem Dekodieren wiederhergestellt werden.

Tool ausprobieren