Was Base64-Kodierung ist und warum es sie gibt
Base64 ist ein Binär-zu-Text-Kodierungsschema, das beliebige Binärdaten — Bilder, Dateien, binäre Strings — in einen sicheren ASCII-Zeichensatz (A-Z, a-z, 0-9, +, /) umwandelt, der überall, wo Text erlaubt ist, zuverlässig übertragen werden kann. Es wurde für das frühe Internet entwickelt, wo viele Protokolle (SMTP, HTTP-Header, XML-Attribute) nur 7-Bit-ASCII-Text unterstützten.
Jeder Base64-kodierte Wert ist etwa 33 % größer als das Original. Das ist der Kompromiss: Man zahlt mit Größe für universell textsichere Übertragung. Deshalb wird Base64 verwendet, um Bilder in CSS einzubetten (`data:image/png;base64,...`), JWT-Tokens zu kodieren, Dateien in E-Mail-MIME-Teilen anzuhängen und Binärdaten in JSON und XML zu speichern.
Standard vs. URL-sicheres Base64
Standard-Base64 verwendet `+` und `/` als zwei nicht-alphanumerische Zeichen. Diese sind in URLs reservierte Zeichen, was bedeutet, dass ein Standard-Base64-String in einem URL-Query-Parameter ohne Prozentkodierung kaputt geht. URL-sicheres Base64 (auch Base64url genannt) ersetzt `+` durch `-` und `/` durch `_`, was die Ausgabe für URLs und Dateinamen sicher macht.
JWT-Tokens verwenden immer URL-sicheres Base64. Im Zweifelsfall: Standard-Base64 für Dateiinhalte und E-Mails, URL-sicheres Base64 für alles, was in einer URL oder einem HTTP-Header erscheint.
Häufige Base64-Anwendungsfälle
Kleine Bilder direkt in HTML/CSS einbetten, um HTTP-Requests zu sparen (Data-URIs). API-Zugangsdaten in HTTP-Basic-Auth-Headern kodieren. JWT-Header- und Payload-Kodierung. Binäre Blobs (wie kryptografische Schlüssel) in `.env`-Dateien speichern. Dateianhänge in E-Mails kodieren. Binärdaten über textbasierte Kanäle wie JSON-API-Payloads übertragen.