Base64 kodieren und dekodieren
Die Browser-Funktion btoa verdaut nur Latin-1 und bricht beim ersten Umlaut. Hier läuft die Zeichenkette vor dem Kodieren durch UTF-8, sodass »déjà vu« unversehrt zurückkommt.
So funktioniert die Prüfung
- 1
Text wird zu Bytes
Zuerst UTF-8-Kodierung: das erhält Umlaute, Emoji und Schriftzeichen.
- 2
Bytes werden zu Base64
Drei Bytes werden zu vier Zeichen aus einem Alphabet von 64 Symbolen.
- 3
Bei Bedarf URL-safe
Die Zeichen + und / werden zu - und _, und die =-Auffüllung entfällt.
Base64 ist keine Verschlüsselung
Es ist eine umkehrbare Kodierung ohne Schlüssel: jeder dekodiert sie in einer Sekunde. Sie existiert, um Bytes durch einen Kanal zu bringen, der nur Text annimmt — eine E-Mail, eine URL, ein JSON-Feld. Ein Passwort darin ist so gut wie im Klartext.
Eine weitere Folge: Base64 bläht Daten um rund ein Drittel auf. Ein Bild als Data-URI wiegt deshalb mehr als die Originaldatei.
Häufige Fragen
Warum werden meine Umlaute anderswo zu Fragezeichen?
Weil dort in Latin-1 statt UTF-8 kodiert wird. Die Browser-Funktion btoa wirft jenseits von Zeichen 255 einen Fehler; manche Umsetzungen umgehen das durch Abschneiden, was Umlaute zerstört.
Was bedeuten die =-Zeichen am Ende?
Auffüllung. Base64 arbeitet in Dreier-Byte-Gruppen; ist die letzte Gruppe unvollständig, füllen ein oder zwei =-Zeichen den Block. Die URL-safe-Variante lässt sie weg, der Dekodierer ergänzt sie wieder.
Wann nimmt man die URL-safe-Variante?
Sobald die Zeichenkette in einer URL oder einem Dateinamen unterwegs ist. Die Zeichen + und / haben dort eigene Bedeutung und würden umgedeutet; - und _ passen überall. Es ist die Variante der JWT-Token.
Dieselbe Prüfung per API
Dieses Werkzeug läuft in Ihrem Browser. Für dieselbe Prüfung aus Ihrem Code, in großer Menge oder serverseitig, antwortet die API in JSON.
Zur Dokumentation