Was ist Base64?
Base64 ist ein Binär-zu-Text-Kodierungsschema, das binäre Daten in einem ASCII-Zeichenfolgenformat darstellt. Es wird häufig in verschiedenen Computeranwendungen verwendet, insbesondere wenn binäre Daten kodiert werden müssen, die über Medien gespeichert und übertragen werden sollen, die für den Umgang mit Textdaten konzipiert sind.
Warum Base64 verwenden?
Base64 wird aus mehreren Gründen häufig verwendet:
- Um binäre Daten sicher durch textbasierte Systeme zu übertragen
- Um Bilddaten in CSS oder HTML einzubetten
- Um E-Mail-Anhänge zu kodieren
- Um komplexe Daten im JSON-Format zu speichern
Wie Base64 funktioniert
Die Base64-Kodierung funktioniert, indem jeweils drei Bytes der Eingabedaten in vier ASCII-Zeichen umgewandelt werden. Hier ist eine vereinfachte Erklärung des Prozesses:
- Nehmen Sie 3 Bytes binäre Daten (insgesamt 24 Bits)
- Teilen Sie diese 24 Bits in vier 6-Bit-Stücke auf
- Konvertieren Sie jedes 6-Bit-Stück in sein entsprechendes Base64-Zeichen
Das Base64-Alphabet besteht aus 64 Zeichen: A-Z, a-z, 0-9, + und /. Das Zeichen = wird für das Auffüllen verwendet, wenn die Länge der Eingabedaten nicht durch 3 teilbar ist.
Base64-Kodierungstabelle
Wert Kodierung Wert Kodierung Wert Kodierung Wert Kodierung 0 A 17 R 34 i 51 z 1 B 18 S 35 j 52 0 2 C 19 T 36 k 53 1 3 D 20 U 37 l 54 2 4 E 21 V 38 m 55 3 5 F 22 W 39 n 56 4 6 G 23 X 40 o 57 5 7 H 24 Y 41 p 58 6 8 I 25 Z 42 q 59 7 9 J 26 a 43 r 60 8 10 K 27 b 44 s 61 9 11 L 28 c 45 t 62 + 12 M 29 d 46 u 63 / 13 N 30 e 47 v 14 O 31 f 48 w (Auffüllung) = 15 P 32 g 49 x 16 Q 33 h 50 y
Base64 in Programmiersprachen
Base64 in Python
import base64
# Kodierung
text = "Hallo, Welt!"
encoded = base64.b64encode(text.encode('utf-8')).decode('utf-8')
print(f"Kodiert: {encoded}")
# Dekodierung
decoded = base64.b64decode(encoded).decode('utf-8')
print(f"Dekodiert: {decoded}")
Base64 in JavaScript
// Kodierung
let text = "Hallo, Welt!";
let encoded = btoa(text);
console.log(`Kodiert: ${encoded}`);
// Dekodierung
let decoded = atob(encoded);
console.log(`Dekodiert: ${decoded}`);
Base64 in PHP
<?php
// Kodierung
$text = "Hallo, Welt!";
$encoded = base64_encode($text);
echo "Kodiert: " . $encoded . "\n";
// Dekodierung
$decoded = base64_decode($encoded);
echo "Dekodiert: " . $decoded . "\n";
?>
Häufige Anwendungsfälle für Base64
Einbetten von Bildern in HTML/CSS
Base64 kann verwendet werden, um kleine Bilder direkt in HTML oder CSS einzubetten und so HTTP-Anfragen zu reduzieren:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg==" alt="Base64-kodiertes Bild">
Senden von Daten in JSON
Wenn Sie binäre Daten in JSON einschließen müssen, wird oft die Base64-Kodierung verwendet:
{
"name": "beispiel.png",
"inhalt": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJggg=="
}
URL-sichere Base64
Für die Verwendung in URLs wird eine Variation von Base64 verwendet, die + und / durch - und _ ersetzt:
Standard: a+b/c==
URL-sicher: a-b_c==
Online Base64-Tools
Hier sind einige beliebte Online-Tools für Base64-Kodierung und -Dekodierung:
Base64 und Sicherheit
Warnung: Base64 ist ein Kodierungsschema, keine Verschlüsselungsmethode. Es bietet keine Sicherheit oder Datenschutz. Verwenden Sie Base64 niemals, um sensible Informationen ohne ordnungsgemäße Verschlüsselung zu speichern oder zu übertragen.
Obwohl Base64 Daten für Menschen unleserlich machen kann, ist es trivial einfach zu dekodieren. Verwenden Sie immer geeignete Verschlüsselungsmethoden für sensible Daten.
Vor- und Nachteile von Base64
Vorteile:
- Ermöglicht die Übertragung binärer Daten über textbasierte Protokolle
- Gewährleistet die Datenintegrität während der Übertragung
- Weit verbreitet und unterstützt auf verschiedenen Plattformen und in Programmiersprachen
Nachteile:
- Erhöht die Datengröße um etwa 33%
- Erfordert Kodierung und Dekodierung, was die Leistung bei großen Datenmengen beeinträchtigen kann
- Kann mit Verschlüsselung verwechselt werden, was zu einem falschen Sicherheitsgefühl führen kann
Häufig gestellte Fragen
Ist Base64 eine Verschlüsselung?
Nein, Base64 ist keine Verschlüsselung. Es ist ein Kodierungsschema, das binäre Daten in einem ASCII-Zeichenfolgenformat darstellt. Es bietet keine Sicherheit.
Warum erhöht die Base64-Kodierung die Dateigröße?
Die Base64-Kodierung erhöht die Dateigröße, weil sie 3 Bytes Daten mit 4 Zeichen darstellt. Dies führt zu einer Größenzunahme von etwa 33%.
Können Base64-kodierte Daten komprimiert werden?
Ja, Base64-kodierte Daten können komprimiert werden, aber es ist im Allgemeinen effizienter, die Daten vor der Base64-Kodierung zu komprimieren.