Mathe & Alltag

Base64 decodieren und codieren

Text oder Base64-String einfügen und die Richtung wählen – die Umwandlung läuft direkt im Browser, inklusive Umlauten und Emoji.

Ergebnis

Status
—
Länge Eingabe—
Länge Ausgabe—
Datenmenge (UTF-8)—
Füllzeichen am Ende—
Ergebnis
—
Base64 ist keine Verschlüsselung. Der Inhalt lässt sich von jedem ohne Schlüssel zurückwandeln – für Vertrauliches ist das Verfahren ungeeignet.

So funktioniert Base64

Base64 wandelt beliebige Binärdaten in eine Zeichenfolge um, die nur aus 64 unbedenklichen Zeichen besteht: den Buchstaben A bis Z und a bis z, den Ziffern 0 bis 9 sowie Plus und Schrägstrich. Das Gleichheitszeichen dient als Füllzeichen am Ende. Der Sinn liegt darin, Daten durch Kanäle zu schleusen, die ursprünglich nur für Text gedacht waren – allen voran E-Mail.

Das Verfahren in einem Satz

Je drei Bytes der Eingabe, also 24 Bit, werden in vier Blöcke zu sechs Bit zerlegt, und jeder dieser Sechs-Bit-Werte wird über eine feste Tabelle einem der 64 Zeichen zugeordnet. Weil aus drei Bytes vier Zeichen werden, wächst die Datenmenge um exakt ein Drittel. Geht die Eingabe nicht glatt durch drei, wird mit einem oder zwei Gleichheitszeichen aufgefüllt – daran erkennt man am Ende eines Base64-Strings oft, dass er vollständig ist.

Rechenbeispiel

Das Wort „Hi" besteht aus zwei Bytes. Nach der Umwandlung entstehen drei Zeichen plus ein Füllzeichen: „SGk=". Ein 300 Kilobyte großes Bild wird als Base64 rund 400 Kilobyte groß. Genau deshalb sind E-Mail-Anhänge im Postfach immer etwas größer als die Originaldateien: Sie werden für den Transport codiert.

Umlaute und der klassische Stolperstein

Die eingebauten Browser-Funktionen arbeiten byteweise und kommen mit Zeichen jenseits des lateinischen Grundalphabets nicht direkt zurecht. Ein „ä" belegt in UTF-8 zwei Bytes, ein Emoji sogar vier – ohne Vorbehandlung bricht die Umwandlung ab. Der Rechner wandelt den Text deshalb zuerst in seine UTF-8-Bytefolge und codiert erst dann. Beim Decodieren läuft es umgekehrt. Wer selbst programmiert, findet denselben Mechanismus in der Kombination aus encodeURIComponent und btoa.

Varianten des Alphabets

Neben dem Standardalphabet existiert eine URL-sichere Variante, die Plus und Schrägstrich durch Minus und Unterstrich ersetzt. Der Grund ist praktisch: Beide Standardzeichen haben in URLs eine eigene Bedeutung und müssten sonst zusätzlich maskiert werden. JSON Web Tokens verwenden diese Variante durchgängig und lassen die Füllzeichen am Ende meist ganz weg. Wer einen Base64-String mit Minus und Unterstrich vor sich hat, muss ihn vor dem Decodieren zurückübersetzen – sonst scheitert die Umwandlung.

Wofür Base64 verwendet wird – und wofür nicht

Typische Einsatzgebiete sind E-Mail-Anhänge nach dem MIME-Standard, eingebettete Bilder in HTML und CSS über Data-URLs, Zertifikate im PEM-Format, Basic-Authentication-Header und die Nutzdaten von JSON Web Tokens. In all diesen Fällen geht es darum, Binärdaten in einem Textfeld unterzubringen. Keine Anwendung ist Sicherheit. Base64 ist eine Codierung, keine Verschlüsselung: Es gibt keinen Schlüssel, und jeder kann den Klartext in Sekunden zurückgewinnen. Wer ein Passwort „zur Sicherheit" base64-codiert, hat es lediglich unleserlich gemacht, nicht geschützt. Für Prüfsummen und Passwörter sind kryptografische Verfahren nötig; wie stark ein Passwort tatsächlich ist, zeigt der Passwort-Generator. Datenmengen rechnet der MB-GB-Umrechner um.

Häufige Fragen

Ist Base64 eine Verschlüsselung?
Nein. Es ist eine reine Codierung ohne Schlüssel – jeder kann den Inhalt zurückwandeln. Für vertrauliche Daten ist Base64 daher ungeeignet, dafür braucht es echte Verschlüsselung.
Warum stehen am Ende Gleichheitszeichen?
Base64 verarbeitet jeweils drei Bytes zu vier Zeichen. Geht die Datenmenge nicht glatt durch drei auf, wird mit einem oder zwei Gleichheitszeichen aufgefüllt. Sie sind also ein Längenausgleich, kein Teil der Daten.
Wie stark wächst die Datenmenge?
Um exakt ein Drittel, weil aus drei Bytes vier Zeichen werden. Aus 300 Kilobyte werden rund 400. Deshalb sind E-Mail-Anhänge im Postfach größer als die Originaldateien.
Funktionieren Umlaute und Emoji?
Ja. Der Rechner wandelt den Text zuerst in seine UTF-8-Bytefolge und codiert dann. Ohne diesen Zwischenschritt scheitern die eingebauten Browser-Funktionen an allem jenseits des lateinischen Grundalphabets.
Wo wird Base64 eingesetzt?
Bei E-Mail-Anhängen nach MIME, in Data-URLs für eingebettete Bilder, bei Zertifikaten im PEM-Format, in Basic-Authentication-Headern und in JSON Web Tokens – überall dort, wo Binärdaten durch einen Textkanal müssen.
Wird meine Eingabe übertragen?
Nein, die Umwandlung läuft vollständig im Browser. Es wird nichts an einen Server geschickt und nichts gespeichert.