CoderTools

Base64-Kodierer/Dekodierer

Schnelles Kodieren und Dekodieren von Base64-Strings mit Unterstützung für Text- und Dateikonvertierung

Zeichensatz

Was ist Base64?

Base64 ist ein Kodierungsschema, das Binärdaten mit 64 druckbaren ASCII-Zeichen darstellt. Diese Zeichen umfassen Groß- und Kleinbuchstaben, Zahlen und einige Sonderzeichen. Base64 wird häufig in Szenarien verwendet, in denen Binärdaten über reine Textkanäle übertragen werden müssen, wie z. B. E-Mail-Anhänge und URL-Parameter. Das Base64-Kodierungsschema wurde ursprünglich in RFC 4648 und der MIME-Spezifikation (RFC 2045) definiert.

Base64-Kodierungsalgorithmus-Prinzip:

Der Base64-Kodierungsprozess kann in folgende Schritte unterteilt werden:

  1. Teilen Sie die Eingabedaten in Gruppen von jeweils 3 Bytes auf
  2. Ordnen Sie diese 3 Bytes (24 Bits) in 4 Gruppen von jeweils 6 Bits um
  3. Ordnen Sie jeden 6-Bit-Wert (Bereich 0-63) als Index zum Base64-Zeichensatz zu
  4. Wenn die letzte Gruppe weniger als 3 Bytes hat, füllen Sie mit 0-Bits auf und fügen Sie am Ende des Ergebnisses die entsprechende Anzahl von Gleichheitszeichen (=) als Padding hinzu

Base64-Zeichensatz: A-Z, a-z, 0-9, +, /

Padding-Zeichen: =

Konvertierungsbeispiel:

ASCII-Code für Text "Man": 77 97 110
Binäre Darstellung: 01001101 01100001 01101110
Neu gruppiert in 6 Bits: 010011 010110 000101 101110
Dezimalwerte: 19 22 5 46
Base64-Ergebnis: T W F u

Vereinfachte JavaScript-Implementierung:

// Base64 encoding implementation example (simplified)
function base64Encode(str) {
    // Base64 character set
    const base64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
    let result = '';
    let i = 0;

    // Process every 3 characters as a group
    while (i < str.length) {
        const char1 = str.charCodeAt(i++);
        const char2 = i < str.length ? str.charCodeAt(i++) : 0;
        const char3 = i < str.length ? str.charCodeAt(i++) : 0;
        
        // Convert 3 8-bit bytes into 4 6-bit indices
        const triplet = (char1 << 16) + (char2 << 8) + char3;
        
        // Extract 4 6-bit values from the triplet
        const index1 = (triplet >> 18) & 0x3F;
        const index2 = (triplet >> 12) & 0x3F;
        const index3 = (triplet >> 6) & 0x3F;
        const index4 = triplet & 0x3F;
        
        // Add padding based on the original data length
        if (i - 3 > str.length) {
            result += base64chars[index1] + base64chars[index2] + '==';
        } else if (i - 2 > str.length) {
            result += base64chars[index1] + base64chars[index2] + base64chars[index3] + '=';
        } else {
            result += base64chars[index1] + base64chars[index2] + base64chars[index3] + base64chars[index4];
        }
    }
  
    return result;
}

Häufige Verwendungszwecke:

  • Kodierung von E-Mail-Anhängen (MIME-Standard)
  • Sichere Datenübertragung in URLs (mit Base64url-Variante, wobei '+' und '/' durch '-' und '_' ersetzt werden)
  • Einbetten von Binärbildern in HTML oder CSS (data-URI-Schema)
  • Speichern einfacher Daten als einzelne Zeichenkette (wie JWT-Token-Komponenten)
  • Einbinden von Binärdaten in XML und JSON (Vermeidung von Escape-Problemen bei Sonderzeichen)

Erweiterte Funktionen

Hexadezimalformat-Unterstützung

Unser Tool unterstützt Hexadezimalformat-Eingabe und -Ausgabe, nützlich für Entwickler, die mit Binärdaten im Programmcode arbeiten.

  • Eingabe: Akzeptiert Hex-Format wie 0x11,0x22,0x33 oder einfach 112233
  • Ausgabe: Konvertiert dekodiertes Base64 zurück in Hex-Format für Code-Einbettung

Zeichensatz-Unterstützung

Verschiedene Zeichensätze kodieren Text unterschiedlich in Bytes. Unser Tool unterstützt mehrere Zeichensätze zur Verarbeitung verschiedener Textkodierungen:

  • UTF-8: Universelle Kodierung, unterstützt alle Unicode-Zeichen (Standard)
  • ASCII: 7-Bit-Kodierung, unterstützt grundlegende englische Zeichen (0-127)
  • Latin-1 (ISO-8859-1): 8-Bit-Kodierung, unterstützt westeuropäische Zeichen (ISO-8859-1)
  • UTF-16: 16-Bit-Kodierung, häufig von Windows und Java verwendet (Little Endian)

Wichtige Hinweise:

  • Base64-kodierte Daten sind typischerweise etwa 33% größer als die Originaldaten (da 3 Bytes zu 4 Zeichen werden)
  • Base64 ist kein Verschlüsselungsalgorithmus, nur eine Kodierungsmethode und bietet keine Sicherheit
  • Base64-Kodierung großer Dateien kann erheblichen Speicher und Verarbeitungszeit verbrauchen
  • URL-sichere Base64-Varianten verwenden unterschiedliche Zeichensätze, um URL-Kodierungsprobleme zu vermeiden
  • Standard-Base64 kann Zeilenumbrüche enthalten, um die Zeilenlänge zu begrenzen, was in einigen Anwendungen zusätzliche Behandlung erfordert

Vergleich von Base64 mit anderen Kodierungen:

Kodierungstyp Eigenschaften Hauptverwendung
Base64 Verwendet 64 ASCII-Zeichen zur Darstellung von Binärdaten E-Mail-Anhänge, Binärdatenübertragung in Text
URL-Kodierung Konvertiert Sonderzeichen in %XX-Format URL-Parameterübergabe, Formularübermittlung
Hex-Kodierung Jedes Byte wird als zwei hexadezimale Zeichen dargestellt Hash-Wert-Darstellung, Binärdaten-Visualisierung

Für weitere offizielle Informationen über Base64 beachten Sie bitte die folgenden Ressourcen: RFC 4648 (Base64-Standard) | Wikipedia: Base64 | RFC 2045 (MIME-Spezifikation)