Was ist Base64-Kodierung und wie funktioniert sie?

Base64 ist eine Methode, beliebige Daten, Text oder Binärdaten, mit nur 64 sicheren Zeichen zu schreiben (A bis Z, a bis z, 0 bis 9 sowie + und /), damit sie durch Systeme kommen, die nur einfachen Text verarbeiten. Aus je 3 Bytes Eingabe werden 4 Zeichen, das Ergebnis ist also etwa 33 Prozent größer. Es ist eine Kodierung, keine Verschlüsselung: Jeder kann es dekodieren.

5 Min. Lesezeit

Base64 in einer Minute

Computer speichern alles als Bytes, und ein Byte kann 256 verschiedene Werte haben. Viele ältere Protokolle und Formate, etwa E-Mail, URLs, JSON-Strings und HTTP-Header, wurden für lesbaren Text gebaut und können Bytes außerhalb eines kleinen sicheren Bereichs verfälschen oder ablehnen. Base64 löst das, indem es die Bytes mit Zeichen ausdrückt, die überall heil ankommen.

Das Tool unten kodiert Text beim Tippen in Base64 und wandelt ihn mit einem Klick auf Dekodieren wieder zurück. Der Text wird zuerst in UTF-8 umgewandelt, damit Umlaute wie ä, ö, ü und ß, andere Alphabete und Emoji genau so zurückkommen, wie sie waren. Die Statuszeile zeigt, wie viele Bytes Text zu wie vielen Bytes Base64 geworden sind.

Hier ausprobieren: Base64 kodieren

Vollständige Tool-Seite öffnen

So funktioniert die Kodierung, Schritt für Schritt

Base64 nimmt die Eingabe in Gruppen von 3 Bytes (24 Bit) und teilt diese 24 Bit in vier Gruppen zu je 6 Bit. Sechs Bit fassen eine Zahl von 0 bis 63, und jede Zahl wird in einem festen Alphabet nachgeschlagen: 0 bis 25 sind A bis Z, 26 bis 51 sind a bis z, 52 bis 61 sind 0 bis 9, 62 ist + und 63 ist /.

Nimm das Wort Man. Seine Bytes sind 77, 97 und 110, binär 01001101 01100001 01101110. In 6-Bit-Stücke umgruppiert ergibt das 010011 010110 000101 101110, also 19, 22, 5 und 46, und die stehen für T, W, F und u. Aus Man wird also TWFu.

Ist die Länge der Eingabe kein Vielfaches von 3, wird die letzte Gruppe aufgefüllt. Ein übriges Byte ergibt zwei Zeichen plus ==, zwei übrige Bytes ergeben drei Zeichen plus =. Deshalb wird Ma zu TWE= und M zu TQ==, und deshalb wird aus Hello (5 Bytes) SGVsbG8=.

Warum Base64 33 Prozent größer ist

Vier Ausgabezeichen tragen die Information von drei Eingabebytes, die Größe wächst also um den Faktor 4/3, plus bis zu zwei Füllzeichen. Manche Systeme fügen außerdem alle 76 Zeichen (E-Mail, MIME) oder alle 64 Zeichen (PEM-Zertifikate) einen Zeilenumbruch ein, was noch ein paar Prozent dazu bringt.

OriginalgrößeGröße in Base64Mit Zeilen zu 76 Zeichen
3 Bytes4 Bytes4 Bytes
1 KB (1.024 Bytes)1.368 Bytesetwa 1,4 KB
100 KBetwa 133 KBetwa 137 KB
1 MBetwa 1,33 MBetwa 1,37 MB
E-Mail-Anhang mit 10 MBetwa 13,3 MBetwa 13,7 MB

Wo dir Base64 begegnet

  • E-Mail-Anhänge: MIME kodiert Dateien als Base64 mit Zeilen zu 76 Zeichen. Deshalb kann ein Mailanbieter mit 25 MB Nachrichtengrenze eine Datei mit 20 MB ablehnen: Kodiert hat sie über 27 MB.
  • Data URIs: Bilder, Schriften und Icons, die in HTML oder CSS als data:image/png;base64, gefolgt von der kodierten Datei, eingebettet sind.
  • HTTP-Basic-Authentifizierung: Der Header Authorization: Basic, gefolgt von benutzername:passwort in Base64. Jeder, der den Header sieht, kann ihn lesen, sicher ist das also nur über HTTPS.
  • JSON Web Tokens: Header und Nutzdaten sind Base64url-kodiertes JSON, deshalb beginnt ein JWT mit eyJ (der Kodierung der Zeichen {").
  • Zertifikate und Schlüssel: PEM-Dateien sind Base64 zwischen den Zeilen BEGIN und END.
  • APIs und Konfiguration: Binärdaten in JSON-Feldern, Kubernetes Secrets, Umgebungsvariablen und Datenbankexporte.

Base64-Varianten: Standard, URL-sicher und MIME

Standard-Base64 (RFC 4648) verwendet + und / und füllt mit = auf. Diese drei Zeichen haben in Webadressen eine besondere Bedeutung, deshalb gibt es eine URL-sichere Variante, oft Base64url genannt, die stattdessen Minus und Unterstrich verwendet und meist auf das Auffüllen verzichtet. JWTs und viele Web-APIs nutzen sie. Im Tool schaltest du dafür URL-sicher ein. Der Decoder akzeptiert beide Formen und auch fehlende Füllzeichen.

MIME-Base64, wie es in E-Mails verwendet wird, ist Standard-Base64, aufgeteilt in Zeilen mit höchstens 76 Zeichen. Schalte Zeilen mit 76 Zeichen ein, wenn du eine Ausgabe für einen E-Mail-Text oder eine Datei im PEM-Stil brauchst.

Base64 ist keine Verschlüsselung

Es gibt keinen Schlüssel und kein Geheimnis. Wer cGFzc3dvcmQxMjM= sieht, kann es in einer Sekunde zu password123 dekodieren. Behandle Base64-kodierte Zugangsdaten, Tokens und Konfigurationen genau wie Klartext: Committe sie nicht in öffentliche Repositorys, füge sie nicht in fremde Websites ein und nutze Base64 nicht, um etwas zu verstecken. Kubernetes Secrets zum Beispiel sind standardmäßig nur Base64-kodiert, nicht verschlüsselt.

Wenn du Vertraulichkeit brauchst, nutze echte Verschlüsselung (etwa AES über eine ordentliche Bibliothek) und kodiere den verschlüsselten Text danach mit Base64, falls er als Text transportiert werden muss.

Häufige Probleme beim Dekodieren

  • Kaputte Umlaute: Der Text wurde mit einem anderen Zeichensatz kodiert. In JavaScript akzeptiert btoa nur Zeichen bis zum Code 255 und kodiert sie als Latin 1. Aus ü wird dann /A== statt der UTF-8-Form w7w=, und Zeichen wie das Euro-Zeichen lösen einen Fehler aus. Nutze einen Kodierer, der UTF-8 beherrscht, wie das Tool auf dieser Seite.
  • Fehler wegen ungültiger Zeichen: Der String enthält Leerzeichen, Zeilenumbrüche oder URL-sichere Zeichen, die ein strenger Decoder ablehnt. Dieses Tool ignoriert Zeilenumbrüche und akzeptiert beide Alphabete.
  • Die Länge ist kein Vielfaches von 4: Die Füllzeichen wurden entfernt. Häng = an, bis die Länge durch 4 teilbar ist, oder nutz einen Decoder, der das für dich erledigt.
  • Das Ergebnis sieht aus wie zufällige Zeichen: Die Daten sind binär, etwa ein Bild, eine PDF oder ein ZIP. Das Tool sagt dir dann, dass es Binärdaten sind, erkennt nach Möglichkeit den Dateityp und lässt dich die Datei mit Herunterladen speichern.

Kodieren in der Kommandozeile

Unter Linux kodiert base64 datei.txt und base64 -d datei.b64 dekodiert. Unter macOS gibt es denselben Befehl base64, ältere Versionen nutzen -D zum Dekodieren. In der Windows PowerShell kodiert [Convert]::ToBase64String([IO.File]::ReadAllBytes("datei.bin")) eine Datei, und certutil -encode eingabe ausgabe funktioniert in der Eingabeaufforderung, fügt aber Kopfzeilen mit BEGIN und END hinzu. Für schnelle Tests mit Text ist das Browser-Tool schneller und lässt die Daten nicht in deinem Shell-Verlauf zurück.

Schritt für Schritt

  1. Base64 und Richtung wählenStell Kodierung auf Base64 und Richtung auf Kodieren, oder auf Dekodieren, wenn du schon Base64 hast.
  2. Text einfügenTipp oder füge den Text ein, oder leg eine Textdatei ab. Das Ergebnis aktualisiert sich beim Tippen.
  3. Optionen wählenSchalte URL-sicher für Adressen und Tokens ein, oder Zeilen mit 76 Zeichen für E-Mail und Ausgaben im PEM-Stil.
  4. Kopieren oder prüfenKopiere das Ergebnis, oder schieb es mit Tauschen in die Eingabe und dekodiere es noch einmal, um zu prüfen, dass nichts verloren ging.

Häufige Fragen

Ist Base64 eine Art Verschlüsselung?

Nein. Es ändert nur, wie Daten geschrieben werden, und jeder kann es ohne Schlüssel rückgängig machen. Nutze es nie, um Passwörter oder Geheimnisse zu schützen.

Warum enden Base64-Strings mit = oder ==?

Das sind Füllzeichen. Sie erscheinen, wenn die Länge der Eingabe kein Vielfaches von 3 Bytes ist: ein = bei zwei übrigen Bytes, zwei bei einem übrigen Byte.

Um wie viel macht Base64 eine Datei größer?

Um etwa 33 Prozent, weil aus je 3 Bytes 4 Zeichen werden. Zeilenumbrüche alle 76 Zeichen kosten noch etwa 2,6 Prozent mehr.

Was ist der Unterschied zwischen Base64 und Base64url?

Base64url ersetzt + durch Minus und / durch Unterstrich und lässt meist die Füllzeichen = weg. Das Ergebnis ist dadurch in URLs und Dateinamen sicher. Es wird in JWTs verwendet.

Wird mein Text beim Kodieren oder Dekodieren hochgeladen?

Nein. Kodieren und Dekodieren passieren in deinem Browser, Tokens und Schlüssel bleiben also auf deinem Gerät. Das Tool ist kostenlos und funktioniert nach dem ersten Besuch auch offline.

Kann Base64 Bilder oder andere Dateien enthalten?

Ja, jedes Byte lässt sich kodieren. Wenn sich dekodiertes Base64 als Datei herausstellt, zeigt das Tool, um welche Art Datei es sich handelt, zeigt Bilder in der Vorschau und lässt dich die Datei herunterladen.