Base64-Encoder und -Decoder

Läuft in deinem Browser; nichts wird hochgeladen

Text oder Dateien in Base64 kodieren oder Base64 zurück in Text, Bytes oder ein Bild dekodieren. Bei ungültiger Eingabe zeigt das Tool auf das Zeichen.

Text

Base64

Base64 appears here as you type.

Ready

Was ist Base64?

Base64 ist eine Methode, beliebige Bytes mit nur 64 sicheren Zeichen zu schreiben: A–Z, a–z, 0–9, + und /, mit = als Auffüllung am Ende. Aus je 3 Bytes Eingabe werden 4 Zeichen Ausgabe, kodierte Daten sind also etwa ein Drittel größer als das Original.

Es gibt Base64, weil viele Systeme nur Text zuverlässig verarbeiten. Mit Base64 kannst du Binärdaten wie ein Bild, eine Datei oder einen kryptografischen Schlüssel in JSON, eine E-Mail, eine URL oder einen HTTP-Header packen, ohne dass sie unterwegs beschädigt werden.

Es gibt zwei Alphabete. Das Standardalphabet (RFC 4648) verwendet + und /. Die URL-sichere Variante nimmt stattdessen - und _, weil + und / in URLs eine Bedeutung haben, und lässt meist die =-Auffüllung weg; JWTs verwenden sie. E-Mail (MIME) bricht Standard-Base64 nach 76 Zeichen pro Zeile um.

Bei der Arbeit mit APIs begegnet es dir ständig. HTTP-Basic-Authentifizierung schickt username:password Base64-kodiert im Authorization-Header, die Teile eines JWT sind URL-sicheres Base64, und viele APIs liefern Dateien oder Vorschaubilder als Base64-Strings oder data:-URLs in JSON. Base64 ist eine Kodierung, keine Verschlüsselung: Jeder kann es dekodieren.

So benutzt du dieses Tool

  1. 1Wähle Encode oder Decode. Beim Wechseln bleibt deine Eingabe erhalten; Swap (Alt+Shift+S) übernimmt die Ausgabe als Eingabe und wechselt den Modus.
  2. 2Zum Kodieren tippst du Text ein (er wird als UTF-8 kodiert) oder ziehst eine Datei hinein bzw. öffnest sie, um ihre Bytes exakt zu kodieren. URL-safe, Wrap at 76 und data: URL ändern die Form des Ergebnisses.
  3. 3Zum Dekodieren fügst du Base64, umbrochenes MIME-Base64 oder eine komplette data:-URL ein. Alphabet und fehlende Auffüllung werden automatisch erkannt, und die Statusleiste zeigt, welche Form es war.
  4. 4Ist die Eingabe kein gültiges Base64, wird das Zeichen im Editor markiert, und F8 springt dorthin. Die Meldung sagt, was falsch ist, etwa ein Zeichen außerhalb des Alphabets oder eine falsche Menge an Auffüllung.
  5. 5Dekodierter Text wird als Text angezeigt. Bytes, die kein UTF-8-Text sind, erscheinen als Hex-Dump, Bilder als Vorschau, und Download (Ctrl+S) speichert die Bytes als Datei mit der passenden Endung.

Fehlerbehebung

. ist kein Base64-Zeichen
Die Eingabe ist wahrscheinlich ein JWT, dessen drei Teile durch Punkte getrennt sind. Dekodiere die Teile einzeln oder füge den Token in den JWT-Decoder ein.
% ist kein Base64-Zeichen
Das Base64 wurde für eine URL prozentkodiert (+ wurde zu %2B, = zu %3D). Dekodiere es zuerst mit dem URL-Decoder.
Ein Zeichen fehlt oder ist zu viel
Base64 besteht aus Gruppen von vier Zeichen, und dieser String endet mit einer Gruppe aus einem Zeichen. Er wurde beim Kopieren mit ziemlicher Sicherheit abgeschnitten.
Die dekodierten Bytes sind kein UTF-8-Text
Die Daten sind binär (ein Bild, ein Zip, ein Schlüssel) oder Text in einer anderen Kodierung wie Latin-1. Sieh dir die Hex-Ansicht an oder lade die Bytes herunter, statt sie als Text zu kopieren.
Im Ergebnis steht ein �, wo ein Emoji sein sollte
Der kodierte Text enthielt ein halbes Emoji, meist weil ein String mitten in einem Emoji abgeschnitten wurde. Die Statusleiste zeigt auf das Zeichen; die Hälfte lässt sich nicht kodieren und wird deshalb zu U+FFFD.

Häufige Fragen

Werden meine Daten an einen Server geschickt?

Nein. Kodieren, Dekodieren und Bildvorschauen laufen in deinem Browser, und geöffnete Dateien werden lokal gelesen. Eingefügter Text bleibt im Session Storage dieses Tabs, bis du ihn löschst oder den Tab schließt, sodass ein Neuladen nichts verliert. Copy link legt ihn hinter das # im Link, und diesen Teil schicken Browser nie an einen Server. Gewählte Optionen wie URL-safe merkt sich dieser Browser.

Warum sind manche kodierten Strings bei gleicher Zeichenzahl länger als andere?

Base64 kodiert Bytes, keine Zeichen. In UTF-8 belegt ein englischer Buchstabe 1 Byte, ein Umlaut oder Akzentbuchstabe 2 Bytes und viele asiatische Zeichen 3 Bytes, deshalb ergibt Text in diesen Schriften längeres Base64.

Wie dekodiere ich einen Basic-Auth-Header?

Nimm den Teil nach Basic im Authorization-Header und dekodiere ihn hier. Das Ergebnis sind Benutzername und Passwort, getrennt durch einen Doppelpunkt.

Brauche ich die `=`-Auffüllung?

Die meisten Decoder, auch dieser, akzeptieren Base64 ohne Auffüllung, und URL-sicheres Base64 lässt sie meist weg. Manche strengen Decoder verlangen sie; Standard-Base64 fügt sie hinzu, damit die Länge ein Vielfaches von vier ist.