Base64 erklärt: Was es ist, wann man es verwendet und wann nicht
Wenn Sie länger als eine Woche mit dem Web arbeiten, werden Sie auf Base64 stoßen: lange Zeichenfolgen aus scheinbar zufälligen Buchstaben, Zahlen und gelegentlich „+“, „/“ oder „=“, die in Daten-URIs, JSON-Nutzlasten und Token auftauchen. Es sieht kryptisch aus, aber das Konzept ist einfach – und wenn man es versteht, wird überraschend viel Verwirrung beseitigt.
Was Base64 tatsächlich macht
Computer speichern alles als Binärdatei. Das Problem besteht darin, dass viele Systeme – E-Mail, URLs, JSON, XML – für Text konzipiert sind und rohe Binärdaten Bytes enthalten können, die diese Systeme als Steuerzeichen interpretieren und manipulieren. Base64 löst dieses Problem, indem es Binärdaten mit nur 64 sicheren, druckbaren ASCII-Zeichen (A–Z, a–z, 0–9 plus zwei Symbole) neu ausdrückt. Das Ergebnis ist Text, der jeden Nur-Text-Kanal intakt übersteht.
Das Format ist formal in RFC 4648 definiert. Mit unserem Base64-Encoder und Base64-Decoder können Sie jede Zeichenfolge oder Datei sofort kodieren und dekodieren
Der Fehler: Base64 ist KEINE Verschlüsselung
Dies ist der wichtigste Punkt im gesamten Artikel. Base64 ist Kodierung, keine Verschlüsselung. Es gibt keinen Schlüssel und kein Geheimnis – jeder, der einen Base64-String sieht, kann ihn in Sekundenschnelle wieder in das Original entschlüsseln. Verwenden Sie es niemals, um Passwörter, API-Schlüssel oder sensible Daten zu „verstecken“. Es dient ausschließlich der Kompatibilität und dem sicheren Transport, nicht der Vertraulichkeit. Wenn Sie Geheimhaltung benötigen, benötigen Sie stattdessen echte Verschlüsselung (wie AES) oder Hashing (wie bcrypt).
Wie die Kodierung funktioniert (kurz)
Base64 nimmt drei Bytes Eingabe (24 Bit) und teilt sie in vier 6-Bit-Gruppen auf, wobei jede Gruppe einem ihrer 64 Zeichen zugeordnet wird. Da aus drei Bytes vier Zeichen werden, ist die Ausgabe etwa 33 % größer als die Eingabe. Wenn die Eingabe kein reines Vielfaches von drei Bytes ist, füllen „="-Füllzeichen die Lücke. Das MDN Base64-Glossar bietet eine klare visuelle Anleitung, wenn Sie Details auf Bitebene wünschen.
Wo Sie es treffen
- Daten-URIs: kleine Bilder, die direkt in CSS oder HTML als
data:image/png;base64,...eingebettet sind und eine HTTP-Anfrage speichern. - JWTs: Der Header und die Nutzlast eines JSON-Web-Tokens sind Base64URL-codiert – dekodieren Sie eines und Sie werden die Teile sofort sichtbar sehen.
- HTTP Basic Auth: Anmeldeinformationen sind Base64-kodiert (genau aus diesem Grund muss Basic Auth immer über HTTPS ausgeführt werden).
- E-Mail-Anhänge: MIME verwendet Base64, um Binärdateien über textbasierte E-Mail-Protokolle zu senden.
Ein Hinweis zur Größe und wann man sie vermeiden sollte
Diese Größenzunahme von ca. 33 % bedeutet, dass Base64 für kleine Assets großartig ist, aber eine schlechte Wahl für große Dateien, bei denen die Aufblähung den Komfort des Inlining überwiegt. Das Einbetten eines kleinen Symbols als Daten-URI ist intelligent. Das Base64-Codieren eines 2 MB großen Hero-Bildes in Ihrem HTML-Code ist nicht der Fall – es verzögert das Rendern und kann nicht separat zwischengespeichert werden.
Fazit
Base64 ist ein Transportformat: Es ermöglicht die sichere Übertragung von Binärdaten über Textkanäle, nichts weiter. Greifen Sie darauf zu, um kleine Assets einzubetten, Token zu lesen und Binärdateien in JSON zu packen – und verwechseln Sie es niemals mit Sicherheit. Wenn Sie einen Base64-String im freien Zustand untersuchen müssen, ist der Decoder nur einen Klick entfernt.