Zum Inhalt springen

Base64 kodieren und dekodieren

Base64 Encoder & Decoder

Kodiert und dekodiert Base64 und Base64URL für Text oder Dateien und behandelt UTF-8 korrekt.

Kodiert Text oder eine ganze Datei nach Base64 und dekodiert es zurück – einschließlich data:-URIs und einschließlich des URL-sicheren Alphabets, das ein JWT verwendet. Text geht zuerst durch UTF-8, was der Teil ist, den das eingebaute `btoa` des Browsers gar nicht kann.

🔒 Läuft vollständig in Ihrem Browserbase64encodedecode
Modus
Alphabet

Das +/-Alphabet, wie in MIME.

Text oder Datei als Eingabe

Beliebige Datei ablegen

Wird in diesem Tab gelesen. Nichts wird hochgeladen.

Base64-Ausgabe

0 Zeichen Base64.

Text wird vor dem Base64 als UTF-8 kodiert, und deshalb überstehen „€“ und Emoji den Hin- und Rückweg. Das btoa des Browsers kann das nicht – es lehnt jedes Zeichen oberhalb von U+00FF rundweg ab, während es ein „ä“ durchlässt und als „ä“ zurückgibt –, deshalb ist der Kodierer hier ausgeschrieben statt geliehen.

So funktioniert es

  1. Tippen Sie oder legen Sie ab, was Sie haben

    Das Textfeld nimmt beliebigen Text an; der Ablagebereich nimmt jede Datei an und kodiert sie in Scheiben, damit eine große den Tab nicht einfriert. Wenn Sie im Kodiermodus etwas einfügen, das bereits wie Base64 aussieht, bietet die Seite an zu wechseln.

  2. Wählen Sie das Alphabet

    Base64 ist das `+/`-Alphabet aus MIME. Base64URL ist das mit `-_`, das in einen URL-Pfad oder ein JWT-Segment gehört. Sie sind nicht austauschbar – ein Decoder für das eine lehnt das andere ab.

  3. Entscheiden Sie über Padding und Umbruch

    Das abschließende `=` wird von manchen Parsern verlangt und ist in einem JWT verboten. Umbruch bei 76 ist die MIME-Zeilenlänge, die zählt, wenn die Ausgabe in einen E-Mail-Header oder eine PEM-artige Datei geht, und sonst nirgends.

  4. Nehmen Sie den data-URI, wenn Sie dafür gekommen sind

    Eine abgelegte Datei erzeugt auch einen `data:`-URI mit ihrem MIME-Typ, und das Panel zeigt, um wie viel größer er als die Datei ist – etwa ein Drittel, die Zahl, die entscheidet, ob Einbetten eine gute Idee ist.

Häufige Fragen

Warum kommen Umlaute und das Euro-Zeichen hier heil durch, anderswo aber nicht?

Weil der Text in UTF-8-Bytes umgewandelt wird, bevor er nach Base64 kodiert wird. Das `btoa` des Browsers kodiert ein „ä“ als ein einzelnes Latin-1-Byte, das als UTF-8 dekodiert als „ä“ herauskommt, und wirft bei jedem Zeichen über U+00FF eine Ausnahme – bei „€“ oder einem Emoji. Der verbreitete Ausweg – `unescape(encodeURIComponent(…))` – ist das, was die meisten Websites verwenden und stillschweigend falsch machen. Der Encoder hier ist ausgeschrieben, um beides zu vermeiden.

Ist Base64 Verschlüsselung?

Nein, und das ist wichtig. Es ist eine Kodierung – jeder kann sie dekodieren, auch diese Seite. Ein Passwort oder ein Token in Base64 liegt offen sichtbar da. Wenn Sie Geheimhaltung wollen, macht das Textverschlüsselungswerkzeug auf dieser Website AES-GCM mit einer Passphrase.

Die dekodierte Ausgabe ist leer, aber es gab keinen Fehler.

Dann wurden die Bytes sauber dekodiert, sind aber kein UTF-8-Text – ein PNG, ein Zip, ein Protobuf. Das Panel wechselt in diesem Fall zu einer Hex-Vorschau und einer Download-Schaltfläche; das Textfeld hat nichts zu zeigen, weil es keinen Text gibt.

Wie groß darf eine Datei sein, die ich kodiere?

Das Kodieren selbst läuft in Blöcken und blockiert die Seite nicht, aber das Ergebnis ist ein einziger String, ein Drittel größer als die Datei, und liegt vollständig im Speicher. Bei einigen zehn Megabyte beginnt ein Browser-Tab sich zu beschweren, und ein data:-URI dieser Größe ist ohnehin nirgends brauchbar.

Eingabe aus

Danach

Diese Tools nehmen an, was dieses hier erzeugt, das Ergebnis kann also direkt weiter.