Was ist Base64?
Base64 ist ein Kodierungsschema, das Binärdaten in ASCII-Text umwandelt, wobei 64 druckbare Zeichen (A-Z, a-z, 0-9, +, /) verwendet werden. Es wird häufig verwendet, um Binärdaten über Medien zu übertragen, die nur Text unterstützen, wie E-Mail (MIME) und URLs.
Wie funktioniert Base64-Kodierung?
Base64-Kodierung funktioniert, indem die Eingabe in Gruppen von 3 Bytes (24 Bit) unterteilt und jede Gruppe in 4 Zeichen von 6 Bit umgewandelt wird. Wenn die Anzahl der Bytes kein Vielfaches von 3 ist, werden am Ende Füllzeichen (=) hinzugefügt.
Konvertierungsbeispiel:
Originaltext: "ABC"
Binär: 01000001 01000010 01000011
Gruppiert (6 Bit): 010000 010100 001001 000011
Dezimal: 16 20 9 3
Base64: "QUJD"
Wofür wird Base64 verwendet?
1. Bilder in HTML/CSS einbetten: Data-URLs ermöglichen das direkte Einbinden von Bildern in Code ohne zusätzliche HTTP-Anfragen.
<img src="data:image/png;base64,iVBORw0KGg..." />2. Übertragung von Binärdaten in JSON: REST-APIs verwenden häufig Base64, um Dateien oder Binärdaten in JSON-Payloads zu senden.
3. HTTP-Basic-Authentifizierung: Anmeldedaten werden im Authorization-Header Base64-kodiert.
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=4. E-Mail (MIME): E-Mail-Anhänge werden Base64-kodiert, um die Kompatibilität mit Servern zu gewährleisten, die nur 7-Bit-ASCII unterstützen.
5. Temporäre Speicherung: Speichern von Binärdaten in Cookies, localStorage oder sessionStorage.
Vor- und Nachteile
✓ Vorteile
- • Kompatibel mit Systemen, die nur ASCII-Text akzeptieren
- • Einfach über E-Mail, URL und JSON zu übertragen
- • In allen Sprachen nativ unterstützt
- • Sicher zum Kopieren/Einfügen ohne Datenverlust
✗ Nachteile
- • Erhöht die Größe um ~33% (Overhead)
- • Ist keine Verschlüsselung (bietet keine Sicherheit)
- • CPU-Kosten für Kodieren/Dekodieren
- • Nicht für Menschen lesbar
Base64 vs. andere Schemata
| Schema | Zeichen | Overhead | Häufige Verwendung |
|---|---|---|---|
| Base64 | A-Z, a-z, 0-9, +, / | ~33% | E-Mail, JSON, Data-URLs |
| Base64URL | A-Z, a-z, 0-9, -, _ | ~33% | URLs, JWT-Tokens |
| Hexadezimal | 0-9, A-F | 100% | Hashes, CSS-Farben |
| Base32 | A-Z, 2-7 | ~60% | TOTP, Backup-Codes |
Praktische Anwendungsfälle
🖼️ Data-URL für Favicon
Betten Sie ein Favicon inline ohne externe HTTP-Anfrage ein:
🔑 HTTP-Basic-Auth
Anmeldedaten in HTTP-Anfragen senden:
const credentials = btoa('benutzername:passwort');
headers.Authorization = `Basic ${credentials}`;📧 E-Mail-Anhang
SMTP-Protokolle verwenden Base64 für Anhänge und stellen sicher, dass Sonderzeichen die Nachricht während der Übertragung nicht beschädigen.
Base64 ist KEINE Verschlüsselung
⚠️ Wichtiger Hinweis
Base64 ist ein Kodierungsschema, keine Verschlüsselung. Jeder kann Base64 sofort dekodieren. Verwenden Sie niemals Base64, um Passwörter, Tokens oder sensible Daten zu schützen. Verwenden Sie für echte Sicherheit Verschlüsselungsalgorithmen wie AES, RSA oder bcrypt.
FAQ - Häufig gestellte Fragen
1. Warum vergrößert Base64 die Dateigröße?
Weil es 3 Bytes (24 Bit) in 4 Zeichen von jeweils 6 Bit umwandelt. Dies erzeugt einen Overhead von etwa 33%. Eine 1-MB-Datei wird in Base64 zu ~1,33 MB.
2. Was bedeutet das "=" am Ende von Base64-Strings?
Das "="-Zeichen ist Padding, das hinzugefügt wird, wenn die Anzahl der Eingabebytes kein Vielfaches von 3 ist. Es können 0, 1 oder 2 "="-Zeichen am Ende stehen.
3. Kann Base64 für URLs verwendet werden?
Standard-Base64 verwendet "+", "/" und "=", die Sonderzeichen in URLs sind. Verwenden Sie Base64URL (ersetzt + durch -, / durch _ und entfernt Padding) für URL-sichere Kodierung.
4. Wie konvertiert man Bilder in Base64?
In JavaScript: FileReader API verwenden. Befehlszeile: base64 image.png. In Python: base64.b64encode().
5. Unterstützt Base64 Unicode-Zeichen?
Ja! Unser Tool verwendet encodeURIComponent zur Unterstützung von UTF-8, einschließlich Emojis und Akzentzeichen.
6. Was ist der Unterschied zwischen btoa() und atob()?
btoa() = binary to ASCII (kodiert). atob() = ASCII to binary (dekodiert). Dies sind native JavaScriptowser-Funktionen.