Zum Inhalt springen
TextArray

Base64-Kodierung erklärt: Was es ist und wann man es verwendet

Blog /

Base64 ist in der Webentwicklung allgegenwärtig – in E-Mail-Headern eingebettet, in Daten-URIs eingebettet, in Authentifizierungstokens verwendet und in Textprotokollen um Binärdateien gewickelt. Aber was ist das eigentlich? Und wenn es Daten verschlüsselt, sind sie dadurch nicht sicher? Die Antwort ist nein: Base64 ist eine Kodierung, keine Verschlüsselung. Es ist eine Möglichkeit, binäre oder beliebige Daten als einfachen ASCII-Text darzustellen, mehr nicht. Wenn Sie verstehen, wann und warum es verwendet werden sollte, können viele verwirrende Momente in der Entwicklung geklärt werden.

Was ist Base64?

Base64 ist eine Methode zum Kodieren von Binärdaten in 64 sichere ASCII-Zeichen – die Buchstaben A–Z, a–z, Ziffern 0–9 sowie Pluszeichen und Schrägstriche. Es funktioniert, indem es binäre Eingaben (ob Text, Bilder oder Rohbytes) nimmt und sie in 6-Bit-Blöcke aufteilt. Jeder Block wird zu einem Index im Base64-Alphabet, sodass die Ausgabe immer lesbarer Text ist. Die „64“ bezieht sich auf die Alphabetgröße: 26 + 26 + 10 + 2 = 64 Zeichen.

Warum 64? Weil diese Zeichen in fast allen Systemen sicher sind – E-Mail, alte Terminals, XML, JSON und Klartext. Eine Binärdatei kann während der Übertragung beschädigt werden, wenn spezielle Bytes falsch interpretiert werden. Base64 garantiert, dass die Ausgabe über jeden textbasierten Kanal unverändert bleibt. Du kannst Base64 kodieren und dekodieren sofort in Ihrem Browser, ohne Ihre Daten irgendwo hochladen zu müssen.

Base64 ist keine Verschlüsselung

Dies ist der entscheidende Unterschied: Base64 verwirrt die Darstellung von Daten, aber jeder kann sie rückgängig machen. Wenn Sie das Passwort Base64-kodieren secret123, es wird c2VjcmV0MTIz – aber das ist nicht sicher. Die Dekodierung ist ebenso trivial. Base64 dient der Verschleierung der Übertragung, nicht dem Schutz der Sicherheit. Wenn Sie Daten geheim halten müssen, verwenden Sie Verschlüsselung (wie AES) und nicht Base64. Mit Base64 können Sie verschlüsselte Daten sicher über einen Textkanal senden, es handelt sich dabei jedoch nicht um die Verschlüsselung selbst.

Allgemeine Verwendungen von Base64

Base64 ist in mehreren realen Szenarien Standard:

  1. Daten-URIs. Anstatt auf eine Bilddatei zu verlinken, können Sie das Bild direkt als Daten-URI in HTML oder CSS einbetten: data:image/png;base64,iVBORw0KG…. Dadurch wird eine zusätzliche HTTP-Anfrage vermieden, was bei kleinen Symbolen nützlich ist oder wenn Assets nicht separat gehostet werden können.
  2. E-Mail-Anhänge. SMTP (E-Mail-Protokoll) wurde für Text entwickelt. Binäre Anhänge werden vor dem Senden Base64-kodiert und beim Empfang von Ihrem E-Mail-Client dekodiert.
  3. Authentifizierungstoken. Viele APIs verwenden Base64 für Token – nicht aus Sicherheitsgründen, sondern weil es sich bei Token häufig um Binärdaten handelt, die als lesbarer Text in Headern oder URLs übertragen werden müssen.
  4. Einbetten von Dateien in JSON oder XML. Wenn Sie einen binären Blob (ein PDF, eine Tabelle, ein Archiv) in eine JSON-API-Antwort einbinden müssen, kodiert Base64 ihn als Zeichenfolge, die die JSON-Struktur nicht zerstört.

Der Größenaufwand: Base64 vergrößert die Daten

Ein Nachteil: Die Base64-Ausgabe ist etwa 33 % größer als die ursprüngliche Binärdatei. Dies liegt daran, dass Sie 8 Bit Eingabe in 6-Bit-Blöcke packen und ein Auffüllen erforderlich ist, wenn die Eingabelänge kein Vielfaches von 3 ist. Wenn Sie also ein 300-KB-Bild als Daten-URI einbetten, ist die Base64-Version etwa 400 KB groß – langsamer beim Laden und Analysieren. Bei kleinen Symbolen ist dieser Mehraufwand die eingesparte HTTP-Anfrage wert; Bei großen Dateien ist es normalerweise besser, sie separat zu verknüpfen.

Varianten und verwandte Kodierungen

Standardmäßige Base64-Anwendungen + Und /, die in URLs und Dateinamen eine besondere Bedeutung haben. URL-sicheres Base64 Ersatz - Und _ Stattdessen wird die Verwendung in Pfaden und Abfragezeichenfolgen ohne Prozentkodierung sicherer. Wenn Sie ein benutzerdefiniertes URL-Codierungsschema erstellen, überlegen Sie, ob URL-Kodierung oder URL-sicheres Base64 entspricht Ihren Anforderungen.

Base64 ist eine von mehreren Kodierungen, die unterschiedliche Probleme lösen. Hexadezimale Kodierung Stellt Binärzeichen als zwei lesbare Zeichen pro Byte dar (langsamer zu dekodieren, aber ohne Auffüllung und für Menschen lesbar), häufig in Hashes und Prüfsummen verwendet. HTML-Entitäten kodieren Sie Sonderzeichen wie < Und & damit sie auf Webseiten korrekt angezeigt werden – ein anderes Problem als der willkürliche binäre Transport. Jede Kodierung ist ein Werkzeug für eine bestimmte Aufgabe.

`,