Base64-Konverter

Tippen Sie Text ein, um sein Base64 zu erhalten, oder fügen Sie Base64 ein, um zu sehen, was darin steckt. Sie müssen nicht sagen, in welche Richtung es geht, und ist das Ergebnis ein Bild oder eine Datei, zeigen wir es als solches.

Richtung
oder hier in dieses Feld ziehen. Höchstens 10 MB.
Beim Kodieren schreiben

Das Ergebnis erscheint schon während der Eingabe. Text und Dateien werden direkt auf dieser Seite umgewandelt und nicht an uns gesendet. Base64 ist eine Art, Bytes als Buchstaben zu schreiben, keine Verschlüsselung: Jeder kann es dekodieren.

Bytes durch Kanäle schicken, die für Text gebaut sind

E-Mail wurde für einfache englische Buchstaben entworfen. Ebenso die ersten Webadressen, und so ist es heute bei JSON und XML. Ein Foto, ein PDF oder ein kryptografischer Schlüssel besteht aus beliebigen Bytes, und für einen solchen Kanal bedeuten viele dieser Bytes etwas Besonderes oder gar nichts. Schickt man sie unverändert durch, kommen sie beschädigt an.

Base64 ist der Ausweg. Es schreibt jede Bytefolge mit 64 harmlosen Zeichen um: A bis Z, a bis z, 0 bis 9, + und /. Jeder E-Mail-Anhang reist auf diese Weise. Ebenso die in ein Stylesheet eingebetteten Bilder und die Tokens, die Sie angemeldet halten.

Aus drei Bytes werden vier Zeichen

Ein Byte hat 8 Bit, und eines von 64 Zeichen kann für 6 Bit stehen. Also nimmt der Encoder jeweils 3 Bytes (24 Bit) und schneidet sie in vier Gruppen zu 6 Bit. Jede Gruppe wählt ein Zeichen aus dem Alphabet.

text     M        a        n
bytes    01001101 01100001 01101110
6 bits   010011 010110 000101 101110
Base64   T      W      F      u

Das hat zwei Nebenwirkungen. Die Ausgabe ist um ein Drittel länger als die Eingabe, etwa 33 %, mit Zeilenumbrüchen etwas mehr. Und wenn die Eingabe nicht durch 3 teilbar ist, wird die letzte Gruppe mit einem oder zwei =-Zeichen aufgefüllt, dem sogenannten Padding. Ma ergibt TWE= und M ergibt TQ==. Das Padding trägt keine Daten, deshalb lassen manche Systeme es weg.

Standard, URL-sicher, MIME

VarianteZeichen 63 und 64PaddingWo Sie ihr begegnen
Standard+ /JaData-URIs, HTTP-Basic-Authentifizierung, PEM-Schlüssel
URL-sicher (Base64URL)- _Meist keinsJSON Web Tokens, Links, Dateinamen
MIME+ /JaE-Mail-Anhänge, mit einem Zeilenumbruch alle 76 Zeichen

Beim Dekodieren nimmt dieses Werkzeug alle auf einmal: beide Alphabete, mit oder ohne Padding, Leerzeichen und Zeilenumbrüche an beliebiger Stelle. Danach sagt es Ihnen, welche Variante es gesehen hat. Zeichen außerhalb des Alphabets werden mit ihrer Position aufgelistet und übersprungen. Eine Länge, bei der ein Zeichen übrig bleibt, wird markiert. Ein einzelnes Zeichen trägt 6 Bit und ergibt kein Byte, es wurde also etwas abgeschnitten.

Text ist zuerst einmal Bytes

Base64 kodiert Bytes, keine Buchstaben, also muss Text erst in Bytes umgewandelt werden, bevor irgendetwas anderes passiert. Dieses Werkzeug verwendet UTF-8, die Kodierung fast des gesamten Webs. In UTF-8 ist ein lateinischer Buchstabe ohne Akzent 1 Byte, é 2, die meisten chinesischen oder japanischen Zeichen 3 und ein Emoji 4. Deshalb wird é allein zu w6k=.

Der klassische Fehler ist, diesen Schritt auszulassen. In JavaScript liefert btoa("é") 6Q==, das Latin-1-Byte, und btoa("👍") wirft einen Fehler. Auf dem Rückweg gibt Ihnen atob() é, wo vorher é stand. Die Lösung ist TextEncoder vor dem Kodieren und TextDecoder nach dem Dekodieren.

Sind die dekodierten Bytes kein gültiges UTF-8, wirft Ihnen das Werkzeug keinen Zeichensalat hin. Es schaut sich die ersten Bytes an, an denen sich die meisten Dateiformate erkennen lassen (PNG, JPEG, GIF, WebP, PDF, ZIP und gzip werden erkannt), zeigt ein Bild in der Vorschau, bietet das Ergebnis als Datei an und zeigt den Anfang hexadezimal.

Es verbirgt nichts

Base64 hat keinen Schlüssel und kein Geheimnis. Dekodieren ist dasselbe Rezept rückwärts gelesen, und jede Programmiersprache bringt es mit. Ein mit Base64 „geschütztes“ Passwort ist ein Passwort im Klartext mit Zusatzschritten. Nehmen Sie den HTTP-Header Authorization: Basic dXNlcjpwYXNz, den jeder wieder in user:pass verwandeln kann.

Eine data:-URI wie data:image/png;base64,iVBORw0… steckt eine ganze Datei in eine Adresse. Bei einem winzigen Icon spart das eine Anfrage. Bei allem Größeren zahlen Sie die zusätzlichen 33 %, und die Datei kann nicht mehr separat gecacht werden.

Häufige Fragen

Ist Base64 eine Verschlüsselung?

Nein. Es ist eine Kodierung, eine öffentliche und umkehrbare Art, Bytes mit 64 druckbaren Zeichen zu schreiben. Es gibt keinen Schlüssel, also kann jeder es dekodieren. Nutzen Sie es, um Daten zu transportieren, nie, um sie zu schützen.

Warum endet Base64 mit einem oder zwei Gleichheitszeichen?

Der Encoder arbeitet mit Gruppen zu 3 Bytes. Hat die letzte Gruppe nur 1 oder 2 Bytes, wird die Ausgabe mit == oder = aufgefüllt, damit ihre Länge ein Vielfaches von 4 bleibt. Die Zeichen tragen keine Daten, und URL-sicheres Base64 lässt sie oft weg.

Was ist der Unterschied zwischen Base64 und Base64URL?

Zwei Zeichen. Standard-Base64 verwendet + und /, die beide in Webadressen eine Bedeutung haben. Base64URL ersetzt sie durch - und _ und lässt meist das =-Padding weg. Die enthaltenen Daten sind dieselben.

Warum kommen Umlaute oder Emoji nach dem Dekodieren falsch heraus?

Der Decoder hat die Bytes mit der falschen Textkodierung gelesen, meist Latin-1, obwohl der Text UTF-8 war. Dann sehen Sie é statt é. Dekodieren Sie die Bytes als UTF-8 (in JavaScript mit TextDecoder), und der Text kommt unversehrt zurück.

Wie viel größer ist eine Datei in Base64?

Etwa 33 %, weil aus je 3 Bytes 4 Zeichen werden. Ein Bild von 300 KB wird zu rund 400 KB Text, plus etwa 2,6 %, wenn die Zeilen für E-Mail nach 76 Zeichen umbrochen werden.

Wie mache ich aus einem Bild eine Data-URI?

Ziehen Sie das Bild auf das Werkzeug. Sie erhalten das Base64 und eine vollständige Adresse data:image/…;base64,… zum Einfügen in ein src-Attribut oder ein CSS-url(). Heben Sie sich das für kleine Bilder von wenigen Kilobyte auf.