Base64
Base64 bildet beliebige Binärdaten auf 64 druckbare ASCII-Zeichen ab (A-Z, a-z, 0-9, +, /), damit Binärdaten über reine Textkanäle übertragen werden können.
Zweck
Sie löste das Problem früher Mailsysteme, die nur 7-Bit-ASCII-Text transportieren konnten und keine binären Anhänge direkt senden konnten, und verhinderte zugleich, dass Gateways Steuerzeichen verfälschen.
Mechanismus
Der Eingangs-Bytestrom wird in 3-Byte-Gruppen (24 Bits) verarbeitet, die in vier 6-Bit-Einheiten zerlegt werden, die jeweils auf ein Zeichen des Base64-Alphabets abgebildet werden. Eine letzte kurze Gruppe wird mit = auf 4 Zeichen aufgefüllt. Die kodierte Länge beträgt etwa 4/3 der Eingabe, und die Ausgabelänge ist stets ein Vielfaches von 4.
Anwendungsfälle
- Einbettung von Binärdaten in JSON, XML und URLs (z. B. kleine Bilder in Data-URLs)
- MIME-Anhangsübertragung in E-Mails
- Kodierung von Benutzer:Passwort in der HTTP-Basic-Authentifizierung
- Kodierung der Header- und Payload-Segmente eines JWT
Beispiele
- Eingabe
HelloOutputSGVsbG8=5 bytes to 8 characters with one trailing = pad
Häufige Fehler
- Using standard Base64 directly in URLs, where + and / get percent-encoded and decoding fails
- Use Base64URL instead (- and _ replace + and /, and = padding is dropped)