Base64 kodieren & dekodieren

Text in Base64 kodieren oder Base64 zurück in Text dekodieren – mit vollständiger UTF-8-Unterstützung und URL-sicherer Option.

Läuft zu 100 % in Ihrem Browser. Nichts, was Sie einfügen, wird hochgeladen oder gespeichert.
Text oder Base64
Ergebnis
Bereit.

So verwenden Sie den Base64-Encoder und -Decoder

  1. Wählen Sie Kodieren, um Text in Base64 umzuwandeln, oder Dekodieren, um Base64 wieder in Text zurückzuverwandeln.
  2. Fügen Sie Ihre Eingabe ein. Text wird als UTF-8 behandelt, daher funktionieren Umlaute und Akzente, nicht-lateinische Schriften und Emojis korrekt.
  3. Aktivieren Sie die Option URL-sicher, wenn das Ergebnis in eine URL, einen Dateinamen oder ein JWT eingefügt wird.
  4. Kopieren Sie die Ausgabe.

Kodieren und Dekodieren erfolgen lokal in Ihrem Browser; nichts, was Sie einfügen, wird hochgeladen oder gespeichert.

So funktioniert Base64

Base64, definiert in RFC 4648, stellt beliebige Binärdaten mit 64 druckbaren ASCII-Zeichen dar: A–Z, a–z, 0–9, + und /. Das Verfahren dient dazu, binäre Inhalte sicher durch Systeme zu transportieren, die für Text ausgelegt sind, etwa E-Mail, JSON, XML und HTTP-Header.

Der Algorithmus verarbeitet die Eingabe in Blöcken zu 3 Bytes (24 Bit) und teilt sie in vier 6-Bit-Gruppen auf. Jeder 6-Bit-Wert (0–63) wählt ein Zeichen aus dem Alphabet. Das Wort Man zeigt den Ablauf:

SchrittWert
BytesM=77, a=97, n=110
24 Bit01001101 01100001 01101110
6-Bit-Gruppen010011 010110 000101 101110 = 19, 22, 5, 46
Base64TWFu

Da aus je 3 Bytes 4 Zeichen werden, ist die Base64-Ausgabe etwa 33 % größer als die Eingabe (plus Zeilenumbrüche, falls ein Format wie MIME sie einfügt).

Auffüllen mit =

Ist die Länge der Eingabe kein Vielfaches von drei, wird die letzte Gruppe aufgefüllt (Padding). Ein übrig gebliebenes Byte ergibt zwei Zeichen plus ==, zwei übrig gebliebene Bytes ergeben drei Zeichen plus =. So wird zum Beispiel Hi zu SGk= kodiert.

URL-sicheres Base64

Die Standardzeichen + und / haben in URLs und Dateipfaden eine besondere Bedeutung. RFC 4648 §5 definiert das Alphabet base64url, das sie durch - und _ ersetzt. Das Padding wird oft weggelassen. JSON Web Tokens verwenden base64url ohne Padding.

Standard:    +/8=
URL-sicher:  -_8

Häufige Fehler

Base64 ist keine Verschlüsselung

Jeder kann Base64 sofort dekodieren; es gibt keinen Schlüssel. Verwenden Sie es nie, um Passwörter oder API-Schlüssel zu „verstecken“. Für Integritätsprüfungen nutzen Sie einen Hash aus dem Hash-Generator, für Vertraulichkeit echte Verschlüsselung.

UTF-8 in JavaScript

Das im Browser eingebaute btoa() akzeptiert nur Zeichen aus dem Latin-1-Bereich und wirft bei allem anderen einen Fehler. Wandeln Sie den Text zuerst in UTF-8-Bytes um:

btoa("✓");   // InvalidCharacterError

const bytes = new TextEncoder().encode("✓");
btoa(String.fromCharCode(...bytes));   // "4pyT"

Alphabete vermischen

Wer base64url-Daten mit einem strikten Standard-Decoder dekodiert, scheitert an - und _ oder am fehlenden Padding. Wandeln Sie vor dem Dekodieren das Alphabet um und füllen Sie wieder auf ein Vielfaches von vier Zeichen auf.

Wo Ihnen Base64 begegnet

  • Data-URIs betten kleine Dateien direkt in HTML oder CSS ein: data:image/png;base64,iVBORw0KGgo...
  • HTTP-Basic-Authentifizierung sendet username:password Base64-kodiert. Aus user:pass wird Authorization: Basic dXNlcjpwYXNz, was sich trivial umkehren lässt. Basic Auth darf daher nur über HTTPS verwendet werden. Solche Header können Sie mit dem Tool HTTP-Header prüfen untersuchen.
  • E-Mail-Anhänge (MIME) sowie PEM-Zertifikate und -Schlüssel.
  • JWTs, deren Header und Payload base64url-kodiertes JSON sind. Lesen Sie sie mit dem JWT-Decoder.
Tipp: In der Kommandozeile kodiert printf 'text' | base64 und base64 -d dekodiert (ältere macOS-Versionen verwenden -D). Verwenden Sie printf oder echo -n, damit nicht auch ein abschließender Zeilenumbruch mitkodiert wird.

Häufig gestellte Fragen

Warum endet mein Base64-String auf = oder ==?

Das ist Padding. Es teilt dem Decoder mit, wie viele Bytes die letzte Gruppe enthielt, wenn die Länge der Eingabe nicht durch drei teilbar war.

Ist Base64 sicher?

Nein. Es ist eine Kodierung, keine Verschlüsselung. Es bietet keinerlei Vertraulichkeit, sondern sorgt nur dafür, dass Binärdaten sicher als Text übertragen werden können.

Warum ist die kodierte Ausgabe größer als die Eingabe?

Jedes Base64-Zeichen trägt 6 statt 8 Bit, daher brauchen 3 Eingabebytes 4 Ausgabezeichen, also etwa ein Drittel mehr.

Was ist der Unterschied zwischen Base64 und base64url?

Nur zwei Zeichen unterscheiden sich: base64url verwendet - und _ statt + und / und lässt meist das Padding = weg, sodass sich das Ergebnis ohne weiteres Escaping in URLs einfügen lässt.

Aktualisiert

In die Zwischenablage kopiert