Was bedeuten «encoder» und «decoder» bei Base64?
Base64 kodieren («encode base64») wandelt Bytes — meist die Bytes eines in UTF-8 kodierten Texts — in eine Zeichenkette aus 64 erlaubten Zeichen um: die 26 Großbuchstaben, die 26 Kleinbuchstaben, die 10 Ziffern sowie + und /. Base64 dekodieren («decode base64») führt exakt die Gegenoperation aus: Die Zeichenkette wird in Blöcken von 4 Zeichen gelesen, jedes Zeichen steht für 6 Bits, und 24 Bits ergeben 3 Bytes. Genau diesen Hin- und Rückweg suchen die meisten, wenn sie «encode and decode base64» eingeben.
Base64 ist weder Kompression noch Verschlüsselung: Der Text wird rund ein Drittel länger, und jeder kann ihn in einer Sekunde lesen. Sein Sinn liegt darin, Bytes durch Kanäle zu transportieren, die nur sichere ASCII-Zeichen akzeptieren — URLs, HTTP-Header, Konfigurationsdateien, JSON, Inline-SVG, E-Mails, Textdatenbanken.
Text in Base64 umwandeln
Schritt 1: Der Text wird zuerst je nach gewähltem Zeichensatz in Bytes umgewandelt — standardmäßig UTF-8, wobei Latin-1, Windows-1252, ASCII oder UTF-16 für Altsysteme weiterhin nützlich sind. Schritt 2: Die Bytes werden dreifach gelesen, also 24 Bits. Schritt 3: Diese 24 Bits werden in vier 6-Bit-Blöcke zerlegt, und jeder Block durch das Zeichen der entsprechenden Position im Alphabet ersetzt. Schritt 4: Ist die letzte Gruppe unvollständig, wird sie mit Nullbits aufgefüllt und die Zeichenkette endet mit einem oder zwei = (dem Padding).
Schritt für Schritt: « AB » entspricht 65 bzw. 66 im Dezimalsystem, also 01000001 01000010. In drei Bytes mit Auffüllung: 01000001 01000010 00000000. Die vier 6-Bit-Gruppen sind 010000 010100 001000 000000 → Positionen 16, 20, 8, 0 → QUI=. Geben Sie einfach «AB» im Encoder ein: Das Ergebnis erscheint, bevor Sie die Taste loslassen.
Base64 in Text umwandeln
Die Dekodierung liest die Zeichenkette in Gruppen von 4 Zeichen, nachdem Zeilenumbrüche und Leerzeichen entfernt wurden. Jedes Zeichen wird durch seinen 6-Bit-Wert ersetzt, die vier Werte zu 24 Bits verkettet und diese anschließend in 3 Bytes zerlegt. Die = am Ende zeigen, wie viele wirklich nützbare Bytes die letzte Gruppe enthält: ein = bedeutet 2 Bytes, zwei = bedeuten 1 Byte.
Enthält die Zeichenkette - oder _, handelt es sich um die URL-safe-Variante: Das Tool wandelt sie vor dem Dekodieren automatisch in + und / um. Fehlt das Padding, stellt der Knopf «Padding korrigieren» es wieder her. Bei Zeichen außerhalb des Alphabets, falsch gesetztem Tabulator oder einer Länge ohne Vielfaches von 4 wird der Fehler mit dem genauen Grund angezeigt statt eines bloßen «ungültig».
URL-safe-Variante (RFC 4648 §5)
Standard-Base64 verwendet + und /, zwei Zeichen, die in URLs Probleme machen: Das + wird von den meisten Servern als Leerzeichen gelesen, und das / kann mit einem Pfadtrenner verwechselt werden. Die URL-safe-Variante ersetzt sie durch - und _, die kein Escaping erfordern. Sie ist Pflicht bei JWT (die drei Segmente eines Tokens werden ohne Padding kodiert), bei Cookies, bei Kennungen und URL-Parametern.
Padding «=»: Wofür ist das gut?
Base64 arbeitet in Gruppen von 4 Zeichen, doch die Größe einer Datei ist fast nie ein Vielfaches von 3 Bytes. Das Padding stellt die erwartete Länge her: Bleibt 1 Byte übrig, entsteht ==, bleiben 2 Bytes übrig, entsteht =. Manche Systeme entfernen es (bestimmte APIs, Base64URL), andere verlangen es (PHP, alte Decoder). Die Option «Ohne Padding» des Encoders und der Knopf «Padding korrigieren» des Decoders decken beide Fälle ab.
Zeichenkodierung: UTF-8, Latin-1, UTF-16
Base64 kennt keine Zeichen, nur Bytes. Entscheidend ist also: Womit wird der Text vor dem Base64 kodiert? In UTF-8 sind «é» 2 Bytes und «日» 3; in Latin-1 passt «é» in 1 Byte, «日» wird aber unmöglich. Dekodiert man eine in Latin-1 kodierte Zeichenkette als UTF-8, entstehen Sonderzeichen («Mojibake»). Ist das Ergebnis eines Online-Tools unlesbar, stimmt fast immer die Ausgangskodierung nicht — darum gibt es hier sechs Optionen.
Datei, Data URI und Bilder in Base64
Eine Data URI hat die Form data:<MIME-Typ>;base64,<Daten>. So lässt sich ein Bild direkt in CSS, HTML oder JSON einbetten: background-image:url(data:image/png;base64,iVBOR…). Zum Dekodieren fügen Sie die gesamte Zeichenkette in den Tab «Datei ⇄ Base64» ein: Der MIME-Typ wird extrahiert, ein Name vorgeschlagen und die Datei anschließend erzeugt und heruntergeladen. Achten Sie auf die Größe: Base64 addiert rund 33 %, und eine Data URI wird nie separat gecacht.
Base64, URL-Encoding und warum man sie nicht verwechseln sollte
Das Percent-Encoding (%20, %C3%A9) ersetzt jedes unzulässige Byte durch einen Prozentanteil: Es ist zwei- bis dreimal länger als Base64, bleibt aber optisch nah am Originaltext. Base64 erzeugt eine kompakte, gleichmäßige Zeichenkette — perfekt für Blobs, dafür unlesbar. Der Tab «URL & Data URI» zeigt beide Umwandlungen nebeneinander und verhindert den klassischen Fehler, eine URL in Base64 zu kodieren, statt sie zu escapen — oder umgekehrt.
Base64 in Formaten des Alltags
Base64 ist überall: die drei Segmente eines JWT, das Attribut src eines Inline-SVG-Bilds, das Feld cert in einem PDF, die attachments von E-Mails (RFC 2045), die Authorization: Basic von APIs (benutzer:passwort), die Dateien .pem und SSH-Schlüssel, der Inhalt der .docx und .xlsx (ZIP), die Avatare im Client-Speicher und die data- Attribute automatisierter Tests. Schnell kodieren und dekodieren zu können, erspart den Start eines Terminals für nur eine Zeichenkette.
Was Base64 nicht ist
Base64 verschlüsselt nichts: Eine kodierte Zeichenkette lässt sich in einer Codezeile zurücklesen. Verwenden Sie es nie als Schutz für Passwörter, API-Schlüssel oder persönliche Daten. Es ist auch keine Kompression: Planen Sie immer 33 % mehr Volumen ein. Und Base64 eignet sich für dicht komprimierte Binärdaten (PNG, ZIP) jenseits einiger Megabyte nicht, weil der Speicherverbrauch dann zum Problem wird.
Leistung und bewährte Praxis
Im Browser TextEncoder und TextDecoder verarbeiten mehrere Megabyte pro Sekunde; der Base64-Algorithmus selbst ist linear, ohne Rekursion und ohne Allokation pro Zeichen. Dateien über 5 MB können die Oberfläche ausbremsen: Für größere Mengen ist eine Verarbeitung im Web Worker oder auf dem Server besser. Dokumentieren Sie immer die Ausgangskodierung neben der Zeichenkette und testen Sie den Roundtrip (kodieren und dekodieren), bevor Sie ein Ergebnis in einer Datenbank speichern.
Empfohlen für
Back-End- und Front-End-Entwickler (Tokens, Data URI, HTTP-Header), Integratoren und technische Redakteure (Inline-SVG, Hintergrundbilder), Systemadministratoren und DevOps (Zertifikate, Schlüssel, Dumps), Tester und Pentester (Authorization Basic, Parameter-Fuzzing), Studierende (Bytes, ASCII und UTF-8 verstehen) und alle, die einen Base64-Encoder und -Decoder online suchen — schnell, vollständig und vertraulich.