Base64 Encoder & Decoder – Kostenlos, Online & DSGVO-sicher

🔡 Entwickler-Tool · Kostenlos · Im Browser · DSGVO-sicher

Base64 Encoder & Decoder

Text, URLs und Dateien blitzschnell in Base64 kodieren und dekodieren — vollständig im Browser, ohne Server, ohne Datenverlust. Mit vollständiger UTF-8-Unterstützung, URL-Safe-Modus und Datei-Encoding für Entwickler, DevOps-Engineers und IT-Profis.

🔡
Base64 Encoder / Decoder
🔒 Encodieren
🔓 Decodieren
⚙️ Optionen
📝 Eingabe (Klartext)
🔡 Ausgabe (Base64)
💡 So verwendest du dieses Tool

Im Text-Modus gibst du einfach Text ein — der Base64-Code wird sofort erzeugt. Mit dem Decodieren-Tab kannst du Base64-Strings zurück in Klartext übersetzen. Im URL-Safe-Modus erhältst du base64url-kodierte Ausgaben für Tokens und Query-Parameter. Im Datei-Modus kodierst du Bilder oder Dateien als Base64-String für CSS data: URLs oder API-Aufrufe.

Was ist Base64? – Grundlagen verständlich erklärt

Base64 ist ein Binär-zu-Text-Kodierungsverfahren, das beliebige Binärdaten in einen druckbaren ASCII-Zeichensatz umwandelt. Der Name leitet sich von der Basis 64 ab: Das Verfahren verwendet exakt 64 druckbare Zeichen, die in jedem bekannten Zeichensatz vorhanden sind — egal ob auf alten Terminals, in E-Mails, HTTP-Headern oder XML-Dokumenten.

Base64 wurde in RFC 2045 (MIME) standardisiert und ist heute in zahlreichen Protokollen fest verankert — von E-Mail über HTTP bis hin zu OAuth und JWT. Es ist wichtig zu verstehen: Base64 ist keine Verschlüsselung, sondern ausschließlich eine Kodierungsmethode. Jeder kann einen Base64-String ohne Schlüssel sofort dekodieren.

🔒 Datenschutz-Hinweis: Alle Berechnungen laufen vollständig in deinem Browser per JavaScript. Kein Byte deiner Eingabe verlässt deinen Computer. Dieses Tool ist damit vollständig DSGVO-konform.

Das Base64-Zeichenset im Überblick

Das Standard-Base64-Alphabet besteht aus genau 64 Zeichen plus dem Padding-Zeichen =:

  • 26 Großbuchstaben: A–Z (Index 0–25)
  • 26 Kleinbuchstaben: a–z (Index 26–51)
  • 10 Ziffern: 0–9 (Index 52–61)
  • 2 Sonderzeichen: + (Index 62) und / (Index 63)
  • Padding-Zeichen: = (kein Datenwert, nur Auffüllung)

Base64 Zeichentabelle (vollständig)

💡 URL-Safe Variante: Bei Base64url wird + durch - und / durch _ ersetzt. Padding (=) wird oft weggelassen. Diese Variante ist sicher für URLs, Query-Strings und JWTs.

Wie funktioniert Base64? – Der Algorithmus Schritt für Schritt

Der Base64-Algorithmus ist elegant einfach: Er liest 3 Bytes (24 Bit) aus den Eingabedaten, teilt diese 24 Bit in vier 6-Bit-Gruppen auf, und mappt jede 6-Bit-Gruppe auf eines der 64 Zeichen. Da 2^6 = 64, passen genau 64 Zeichen in eine 6-Bit-Gruppe.

Text„Man"
ASCII77 · 97 · 110
24 BitBinär
4 × 6 BitGruppen
Base64„TWFu"

Bit-Gruppen-Visualisierung: „Man" → „TWFu"

Schauen wir uns das Beispiel-Wort „Man" genau an. Die drei Buchstaben haben die ASCII-Werte 77 (M), 97 (a) und 110 (n):

Eingabe-Bytes:  M (77)       a (97)       n (110)
Binär (8 Bit):  0 1 0 0 1 1 0 1  0 1 1 0 0 0 0 1  0 1 1 0 1 1 1 0
                ←──────────────────────────────────────────────────→
                              24 Bit gesamt
6-Bit-Gruppen:  [010011] [010110] [000101] [101110]
Dezimalwerte:      19       22        5       46
Base64-Zeichen:    T        W        F        u
Ergebnis:                  "TWFu"

Padding – warum gibt es =-Zeichen?

Base64 verarbeitet immer genau 3 Bytes auf einmal. Ist die Eingabe nicht durch 3 teilbar, werden Padding-Bytes hinzugefügt:

  • Eingabe = 1 Byte (8 Bit): nur 2 Base64-Zeichen werden benötigt, 2× = werden angehängt → 4 Zeichen gesamt
  • Eingabe = 2 Bytes (16 Bit): 3 Base64-Zeichen werden benötigt, 1× = wird angehängt → 4 Zeichen gesamt
  • Eingabe = 3 Bytes (24 Bit): 4 Base64-Zeichen, kein Padding nötig → 4 Zeichen gesamt

Deshalb enden viele Base64-Strings auf = oder ==. Die Länge eines Base64-Strings ist immer ein Vielfaches von 4.

📊 Dateigrößen-Vergleich: Original vs. Base64
Base64-Encoding erhöht die Datenmenge immer um ca. 33% (plus optionale Zeilenumbrüche ~37%)

Warum wird Base64 verwendet? – Die wichtigsten Anwendungsfälle

Base64 löst ein fundamentales Problem der digitalen Kommunikation: Viele Übertragungskanäle wurden ursprünglich nur für 7-Bit-ASCII-Text konzipiert. E-Mail-Protokolle, HTTP-Header, XML und viele andere Formate können keine rohen Binärdaten transportieren. Base64 überbrückt diese Lücke, indem es beliebige Binärdaten in einen sicheren ASCII-String umwandelt.

📧
E-Mail-Anhänge (MIME)
Dateien in E-Mails werden über MIME als Base64 kodiert, da SMTP ursprünglich nur ASCII-Text transportiert.
🔑
JWT Tokens
JSON Web Tokens bestehen aus drei Base64url-kodierten Teilen: Header, Payload und Signatur.
🖼️
Data-URLs (CSS/HTML)
Kleine Bilder und Icons werden direkt als Base64-String in CSS url() oder HTML src eingebettet.
🔐
HTTP Basic Auth
Nutzername:Passwort wird als Base64 im Authorization-Header übertragen.
📦
REST APIs / JSON
Binärdaten wie Bilder oder PDFs werden in JSON-APIs als Base64-Strings im Body übertragen.
☁️
Kubernetes Secrets
In Kubernetes werden Secrets als Base64-kodierte Strings in YAML-Manifesten gespeichert.

Praxisbeispiele: Base64 in der Entwicklung

Beispiel 1: Text kodieren – „Hallo Welt"

Eingabetext bereitstellen
Dein Text: Hallo Welt (10 Bytes in ASCII/UTF-8)
ASCII-Bytes bestimmen
H=72, a=97, l=108, l=108, o=111, (Leerzeichen)=32, W=87, e=101, l=108, t=116
Base64-Kodierung anwenden
Die 10 Bytes werden in 3er-Blöcke aufgeteilt, in 6-Bit-Gruppen zerlegt und dem Base64-Alphabet gemappt.
Ergebnis
Ergebnis: SGFsbG8gV2VsdA== — Das == am Ende ist Padding, weil 10 Bytes kein Vielfaches von 3 sind (10 mod 3 = 1).

Beispiel 2: HTTP Basic Authentication

# Nutzername: admin  Passwort: geheimesPasswort123
echo -n "admin:geheimesPasswort123" | base64
# → YWRtaW46Z2VoZWltZXNQYXNzd29ydDEyMw==

# Im HTTP-Request:
curl -H "Authorization: Basic YWRtaW46Z2VoZWltZXNQYXNzd29ydDEyMw==" \
     https://api.example.com/geschuetzteRessource
⚠️ Sicherheitshinweis: HTTP Basic Authentication überträgt Zugangsdaten nur als Base64, nicht verschlüsselt. Verwende dies ausschließlich über HTTPS! Base64 ist keine Verschlüsselung.

Beispiel 3: Bild als Data-URL in CSS einbetten

/* Methode 1: PNG-Bild direkt in CSS */
.logo {
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUg...");
  width: 64px;
  height: 64px;
}

/* Methode 2: SVG inline als Data-URL */
.icon {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0i...");
}

/* Methode 3: Im HTML img-Tag */
<img src="data:image/jpeg;base64,/9j/4AAQSkZJRgAB..." alt="Beispielbild"/>

Beispiel 4: JWT Token analysieren

JSON Web Tokens bestehen aus drei durch . getrennten Base64url-kodierten Teilen. Mit unserem JWT Decoder kannst du Tokens direkt analysieren. Manuell geht es so:

# Ein JWT sieht so aus:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
  .eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6Ik1heCBNdXN0ZXJtYW5uIn0
  .SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

# Header dekodieren (Base64url → JSON):
echo "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9" | base64 -d
# → {"alg":"HS256","typ":"JWT"}

# Payload dekodieren:
echo "eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6Ik1heCBNdXN0ZXJtYW5uIn0" | base64 -d
# → {"sub":"1234567890","name":"Max Mustermann"}

Beispiel 5: Base64 in einer REST API (Python)

Python
JavaScript
PHP
Java
Shell
import base64, requests

# Bild in Base64 kodieren
with open("bild.png", "rb") as f:
    bild_b64 = base64.b64encode(f.read()).decode("utf-8")

# Als JSON-API-Request senden
response = requests.post("https://api.example.com/bild-upload", json={
    "name": "Profilbild",
    "data": bild_b64,
    "mime_type": "image/png"
})

# Base64 dekodieren und speichern
bild_bytes = base64.b64decode(bild_b64)
with open("bild_neu.png", "wb") as f:
    f.write(bild_bytes)

# URL-Safe Base64 (für Tokens)
token = base64.urlsafe_b64encode(b"geheime_daten").decode("utf-8")
print(token)  # Z2VoZWltZV9kYXRlbg==

Base64 vs. Base64url – Der wichtige Unterschied

Standard-Base64 verwendet die Zeichen + und /, die in URLs und Query-Strings eine Sonderbedeutung haben: + steht für ein Leerzeichen, / ist ein Pfadtrenner. Deshalb existiert die URL-Safe-Variante Base64url:

AspektStandard Base64Base64url (URL-Safe)
Zeichen 62+-
Zeichen 63/_
Padding= immer= oft weggelassen
RFCRFC 4648 §4RFC 4648 §5
VerwendungMIME, E-Mail, allgemeinJWT, OAuth, URLs, Cookies
URL-sicher❌ Nein✅ Ja

Base64 vs. Hex – Welches Format wann?

Entwickler stehen oft vor der Wahl zwischen Base64 und Hexadezimal-Kodierung. Beide wandeln Binärdaten in Text um, haben aber unterschiedliche Eigenschaften:

EigenschaftBase64Hexadezimal
Größenzunahme~33%~100%
Zeichen-Set64 Zeichen16 Zeichen (0-9, a-f)
LesbarkeitWeniger lesbarGut lesbar (pro Byte)
Typische VerwendungDateiübertragung, APIs, E-MailHashes, Kryptografie, Debugging
Beispiel (3 Bytes)TWFu (4 Zeichen)4d616e (6 Zeichen)
URL-Safe Variante✅ Base64url✅ Von Natur aus sicher

💡 Faustregel: Verwende Base64 für Dateiinhalte und API-Payloads (kompakter). Verwende Hex für kryptografische Hashes, Fingerprints und Debug-Ausgaben (besser lesbar). Für Hash-Generierung steht dir unser Hash Generator (MD5/SHA) zur Verfügung.

Base64 in der Webentwicklung – Praxis-Guide

Data-URLs: Bilder ohne Datei-Request

Data-URLs ermöglichen es, Ressourcen direkt im HTML oder CSS einzubetten. Das Prinzip: data:[MIME-Typ];base64,[Base64-Daten].

✅ Sinnvoll für Data-URLs
  • 📐 Sehr kleine Icons (< 2 KB)
  • 🔤 Inline-SVG-Icons
  • 📧 HTML-E-Mails (Bilder inlinen)
  • 📱 Offline-fähige Apps (PWA)
  • 🚫 Ressourcen ohne CORS-Erlaubnis
  • 🎭 CSS-Hintergrundmuster / Texturen
❌ Ungeeignet für Data-URLs
  • 📷 Große Fotos (> 10 KB)
  • 🎬 Videos und Audiodateien
  • 📄 Viele wiederverwendete Ressourcen
  • 🔄 Häufig aktualisierte Bilder
  • 💾 Ressourcen die gecacht werden sollen
  • 🔍 SEO-relevante Bilder (alt-Text)

Base64 in JSON APIs – Best Practices

REST-APIs, die JSON als Transportformat nutzen, können keine rohen Binärdaten senden. Bilder, PDFs oder andere Dateien werden deshalb als Base64-Strings in den JSON-Body eingebettet. Dies ist die Standardpraxis bei der OpenAI Vision API, SendGrid, Twilio und vielen anderen.

// Beispiel: Bild per API mit Base64 senden (JavaScript)
async function sendBildZurAPI(bildDatei) {
  // FileReader für Browser-Upload
  const base64 = await new Promise((res, rej) => {
    const reader = new FileReader();
    reader.onload = () => res(reader.result.split(",")[1]); // ohne data:xxx; prefix
    reader.onerror = rej;
    reader.readAsDataURL(bildDatei);
  });

  const response = await fetch("https://api.example.com/analyse", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      bild: base64,
      mime_typ: bildDatei.type,
      dateiname: bildDatei.name
    })
  });
  return response.json();
}

// OpenAI Vision API Beispiel
const payload = {
  model: "gpt-4-vision-preview",
  messages: [{
    role: "user",
    content: [{
      type: "image_url",
      image_url: { url: `data:image/jpeg;base64,${base64Bild}` }
    }, {
      type: "text",
      text: "Was siehst du auf diesem Bild?"
    }]
  }]
};

Kubernetes Secrets und CI/CD

In Kubernetes werden Secrets als Base64-kodierte Strings in YAML-Dateien gespeichert. Wichtig: Dies ist keine Sicherheitsmaßnahme — Kubernetes Secrets sind standardmäßig nicht verschlüsselt gespeichert.

# Kubernetes Secret erstellen
echo -n "mein-passwort" | base64
# → bWVpbi1wYXNzd29ydA==

# kubernetes-secret.yaml
apiVersion: v1
kind: Secret
metadata:
  name: db-credentials
type: Opaque
data:
  password: bWVpbi1wYXNzd29ydA==
  username: YWRtaW4=   # "admin" base64-kodiert

# Secret dekodieren
kubectl get secret db-credentials -o jsonpath='{.data.password}' | base64 -d

Base64 und Sicherheit – Was Entwickler wissen müssen

Das häufigste Missverständnis in der Webentwicklung: Base64 wird fälschlicherweise mit Verschlüsselung gleichgesetzt. Das kann zu ernsthaften Sicherheitslücken führen.

🔓
Keine Verschlüsselung
Jeder kann Base64 ohne Schlüssel sofort dekodieren. Online-Tools (wie dieses) reichen dafür aus.
📏
Kein Datenschutz
Base64 verbirgt keine sensiblen Inhalte. Passwörter, Tokens oder PII sind nach Dekodierung sofort lesbar.
Nur Transport-Format
Base64 löst ein Kompatibilitätsproblem, kein Sicherheitsproblem. Es ist ein Kodierungsformat, kein Sicherheitsmechanismus.
⚠️ Kritisch: Übertrage niemals Passwörter, API-Keys, Kreditkartendaten oder persönliche Daten nur in Base64 kodiert ohne zusätzliche Verschlüsselung (HTTPS/TLS). Base64 ist trivial umkehrbar.

Wann echte Sicherheit notwendig ist

SzenarioBase64 ausreichend?Empfehlung
Bild in Data-URL einbetten✅ JaBase64 ist ideal
JWT Payload übertragen⚠️ Mit SignaturBase64url + HMAC/RSA Signatur
Passwörter übertragen❌ NeinImmer HTTPS + Hashing (bcrypt)
Sensible Dateien speichern❌ NeinAES-256 Verschlüsselung
API-Keys in Config speichern❌ NeinVault, KMS oder Sealed Secrets

Für das Hashing von Passwörtern und die Prüfung von Dateiintegrität empfehlen wir unseren Hash Generator (MD5/SHA-256). Sichere Passwörter erstellst du mit unserem Passwort Generator, der die Web Crypto API des Browsers nutzt.

Häufige Fehler bei Base64 – und wie du sie vermeidest

Fehler 1: Umlaute und Unicode-Zeichen

Die native JavaScript-Funktion btoa() verarbeitet nur Latin-1-Zeichen (Codepoints 0–255). Deutsche Umlaute wie ä, ö, ü, ß sowie Emojis und andere Unicode-Zeichen verursachen einen InvalidCharacterError.

// ❌ FALSCH — wirft InvalidCharacterError
btoa("Ä is an Umlaut"); // DOMException!

// ✅ KORREKT — UTF-8 korrekt behandeln
function safeBase64Encode(str) {
  return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,
    (match, p1) => String.fromCharCode(parseInt(p1, 16))));
}

function safeBase64Decode(str) {
  return decodeURIComponent(atob(str).split('').map(c =>
    '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join(''));
}

safeBase64Encode("Hallo Ü-Welt! 🌍"); // Funktioniert korrekt

Fehler 2: Fehlendes Padding ignorieren

Beim Dekodieren muss die Länge eines Base64-Strings ein Vielfaches von 4 sein. Bei Base64url-Strings wird das Padding (=) oft weggelassen, was beim Dekodieren zu Fehlern führen kann.

// ❌ FALSCH — Padding fehlt
atob("SGFsbG8"); // kann fehlschlagen

// ✅ KORREKT — Padding auffüllen
function padBase64(str) {
  while (str.length % 4 !== 0) str += "=";
  return str;
}
atob(padBase64("SGFsbG8")); // → "Hello"

// URL-Safe Base64 dekodieren (mit Padding-Fix)
function fromBase64Url(str) {
  str = str.replace(/-/g, "+").replace(/_/g, "/");
  while (str.length % 4) str += "=";
  return atob(str);
}

Fehler 3: Zeilenumbrüche in APIs

Gemäß RFC 2045 (MIME) sollten Base64-Strings nach 76 Zeichen umgebrochen werden. Viele APIs und Parser erwarten jedoch einen ununterbrochenen String. Bei API-Calls solltest du Zeilenumbrüche immer entfernen:

// Zeilenumbrüche aus Base64-String entfernen
const sauberB64 = schmutzigB64.replace(/[\r\n\s]/g, "");

// Python
import base64, re
sauber = re.sub(r'[\s]', '', base64.b64encode(data).decode())

Fehler 4: Zu große Dateien kodieren

Base64-Encoding großer Dateien verursacht massive Performance-Probleme: Ein 10 MB großes Bild wird zu ca. 13–14 MB Base64-Text. Bei Dateien über 1 MB solltest du alternative Ansätze in Betracht ziehen:

  • Multipart-Form-Upload statt JSON mit Base64
  • Presigned URLs (z.B. AWS S3) für direkte Datei-Uploads
  • Binäre Protokolle (gRPC, MessagePack) statt REST+JSON

Base64 Performance und Speicherverbrauch

⏱️ Performance-Analyse: Encoding-Zeit nach Dateigröße
Gemessene Zeiten im Browser (Chrome, modernes Gerät) — als Orientierungswerte

Base64-Encoding ist CPU-günstig — das eigentliche Performance-Problem entsteht durch den erhöhten Datenübertrag (33% mehr Bytes) und die erhöhte Speichernutzung im Browser-Speicher. Bei großen Dateien kann Base64 auch Garbage-Collection-Pausen verursachen, da sehr lange Strings im Heap liegen.

Performance-Optimierungen

  • Streaming: Große Dateien in Chunks verarbeiten statt alles auf einmal laden
  • Web Workers: Base64-Encoding in einem Background-Thread ausführen, um den UI-Thread nicht zu blockieren
  • Server-seitig: Für Dateien über 5 MB die Kodierung besser auf dem Server durchführen
  • FileReader API: Im Browser direkt readAsDataURL() nutzen — das ist intern optimiert

Base64 in Datenbanken speichern

Manchmal müssen Base64-kodierte Daten in Datenbanken gespeichert werden — z.B. kleine Thumbnails oder Konfigurationsdaten. Hier sind wichtige Punkte zu beachten:

DatenbankEmpfohlener TypHinweis
PostgreSQLTEXT oder BYTEABYTEA für Binärdaten bevorzugen, TEXT für Base64-Strings
MySQL / MariaDBLONGTEXT oder BLOBBLOB direkter und platzsparender
SQLiteTEXT oder BLOBBLOB ist kompakter (kein Base64-Overhead)
MongoDBBinDataNative BSON-Binärfelder statt Base64-String nutzen
RedisStringBei kleinen Daten OK; für große Daten externe Storage besser

💡 Tipp: Wenn du Binärdaten in einer Datenbank speichern möchtest, ist der native Binärtyp (BYTEA, BLOB, BinData) fast immer effizienter als Base64 — er spart die 33% Overhead. Nutze Base64 in Datenbanken nur, wenn du sicher sein musst, dass der String via JSON-APIs, HTTP-Headers oder CSV-Exports übertragen wird.

Base64 Padding verstehen – Deep Dive

Das Padding-Konzept ist einer der am häufigsten missverstandenen Aspekte von Base64. Hier eine vollständige Erklärung:

Eingabe-BytesBinär-BitsBenötigte 6-Bit-GruppenPaddingAusgabe-Zeichen
1 Byte (8 Bit)82 (davon 4 Bit ungenutzt)==4
2 Bytes (16 Bit)163 (davon 2 Bit ungenutzt)=4
3 Bytes (24 Bit)244 (alle Bits genutzt)kein Padding4

Die Ausgabelänge eines Base64-Strings lässt sich mit dieser Formel berechnen:

// Ausgabelänge berechnen (ohne Zeilenumbrüche)
function base64Length(inputBytes) {
  return Math.ceil(inputBytes / 3) * 4;
}

base64Length(10)   // → 16
base64Length(100)  // → 136
base64Length(1000) // → 1336

// Größenzunahme in Prozent
function base64Overhead(inputBytes) {
  return ((base64Length(inputBytes) / inputBytes) - 1) * 100;
}
// Für alle n → 33.3% (oder leicht mehr durch Zeilenumbrüche)

Verwandte Entwickler-Tools auf Werkix

Base64 ist oft nur ein Teil eines größeren Workflows. Hier sind die am häufigsten gemeinsam verwendeten Tools:

Häufig gestellte Fragen zu Base64

Ist Base64 eine Form der Verschlüsselung?
Nein, Base64 ist definitiv keine Verschlüsselung. Es ist ein reines Kodierungsverfahren, das Binärdaten in ASCII-Text umwandelt. Jeder kann einen Base64-String sofort und ohne Schlüssel dekodieren — mit einem einfachen Online-Tool, dem Konsolenbefehl base64 -d oder einem einzeiligen Code-Snippet in jeder Programmiersprache. Für echte Verschlüsselung sind Verfahren wie AES-256-GCM oder ChaCha20-Poly1305 notwendig.
Warum endet ein Base64-String manchmal auf = oder ==?
Base64 verarbeitet immer 3 Bytes gleichzeitig und gibt 4 Zeichen aus. Ist die Eingabe nicht durch 3 teilbar, werden = als Padding-Zeichen angehängt: Ein = bedeutet, dass ein Byte fehlt (2 Bytes Eingabe); zwei == bedeuten, dass zwei Bytes fehlen (1 Byte Eingabe). Dies ermöglicht dem Decoder zu erkennen, wie viele tatsächliche Datenbytes am Ende vorhanden sind. Base64url-Strings lassen das Padding oft weg, was beim Dekodieren manuell wieder hinzugefügt werden muss.
Was ist der Unterschied zwischen Base64 und Base64url?
Base64url ist eine URL-sichere Variante von Standard-Base64 (RFC 4648 §5). Zwei Zeichen werden ersetzt: + wird zu - (weil + in URLs für Leerzeichen steht) und / wird zu _ (weil / Pfadtrenner in URLs ist). Außerdem wird das Padding (=) oft weggelassen, da es in Query-Strings Kodierungsprobleme verursachen kann. Base64url wird bei JWTs, OAuth 2.0-Tokens, PKCE, URL-Parametern und Cookies verwendet.
Können Umlaute und Emojis base64-kodiert werden?
Ja, technisch gesehen kann jeder Text base64-kodiert werden. Das Problem liegt in der JavaScript-Implementierung: Die native btoa()-Funktion im Browser unterstützt nur Zeichen im Latin-1-Bereich (Unicode-Codepoints 0–255). Deutsche Umlaute (ä, ö, ü, ß) und Emojis haben höhere Codepoints und müssen erst in UTF-8-Bytes umgewandelt werden, bevor sie mit btoa() kodiert werden können. Unser Tool erledigt das automatisch, wenn die UTF-8-Option aktiviert ist.
Wie groß wird ein Base64-String im Vergleich zum Original?
Base64-kodierte Daten sind immer ca. 33% größer als die Originaldaten. Genau: Aus je 3 Bytes Originaldaten werden 4 Base64-Zeichen. Für n Bytes Eingabe entstehen ⌈n/3⌉ × 4 Zeichen. Mit optionalen Zeilenumbrüchen (alle 76 Zeichen) erhöht sich der Overhead auf ca. 37%. Für 1 MB Originaldaten entstehen also ca. 1,33–1,37 MB Base64-Text.
Kann ich mit Base64 erkennen, ob ein String manipuliert wurde?
Nein. Base64 bietet keine Integritätsprüfung. Um sicherzustellen, dass Daten nicht manipuliert wurden, benötigst du einen kryptografischen Hash (z.B. SHA-256) oder eine digitale Signatur (z.B. HMAC-SHA256). JWT-Tokens kombinieren Base64url-Kodierung mit einer kryptografischen Signatur — die Signatur stellt sicher, dass der Base64-kodierte Payload nicht unbemerkt verändert werden kann.
Wie funktioniert Base64 in HTTP Basic Authentication?
Bei HTTP Basic Authentication werden Nutzername und Passwort in der Form nutzername:passwort mit Base64 kodiert und im HTTP-Header Authorization: Basic [Base64-String] übertragen. Dies ist keine sichere Authentifizierungsmethode, da Base64 trivial umkehrbar ist — HTTP Basic Auth sollte deshalb ausschließlich über HTTPS verwendet werden.
Ist dieses Tool DSGVO-konform und werden meine Daten gespeichert?
Ja, vollständig DSGVO-konform. Das gesamte Base64-Encoding und -Decoding läuft ausschließlich in deinem Browser mit JavaScript. Es werden keine Eingaben, Ausgaben oder Dateien an unsere Server oder externe Dienste übertragen. Deine Daten verlassen deinen Computer zu keinem Zeitpunkt. Du kannst dies jederzeit im Browser-Entwicklerwerkzeug (Netzwerk-Tab) überprüfen.
← Zurück zu allen Mini-Tools
Noch keine Kommentare