Base64 Encoder/Decoder
Base64 Encoder/Decoder
Text, Dateien und URLs in Base64 umwandeln. Mit URL-safe Base64, Live-Vorschau und Batch-Modus. 100% lokal im Browser.
Hinweis: Base64 ist keine Verschlüsselung, sondern eine Kodierung, um Binärdaten in Text umzuwandeln. Alle Berechnungen erfolgen lokal im Browser – es werden keine Daten an Server gesendet.
Inhaltsverzeichnis
Schnellübersicht
- Text Encode/Decode: Beliebigen Text in Base64 umwandeln
- Datei-Upload: Bilder, PDFs, etc. zu Base64 (Data-URL)
- URL-safe Base64: Für URLs, JWT, Cookies (RFC 4648)
- Batch-Modus: Mehrere Zeilen gleichzeitig kodieren
- Live-Vorschau: Automatische Konvertierung beim Tippen
- Theorie: Wie Base64 funktioniert
- Geschichte: Von PEM zu Base64URL
- FAQ: Häufige Fragen zu Base64
1. Base64 Encoder/Decoder
Wähle einen Modus und gib deinen Text ein – die Umwandlung erfolgt sofort.
Wie funktioniert Base64?
- Zweck: Binärdaten in Text umwandeln (für E-Mail, URLs, JSON)
- Zeichen:
A-Z,a-z,0-9,+,/(und=als Padding) - Größe: 33% größer als das Original (4 Zeichen für 3 Bytes)
- Keine Verschlüsselung: Jeder kann Base64 dekodieren!
- URL-safe:
+→-,/→_(RFC 4648)
| Wert | Zeichen | Wert | Zeichen | Wert | Zeichen | Wert | Zeichen |
|---|---|---|---|---|---|---|---|
| 0 | A | 16 | Q | 32 | g | 48 | w |
| 1 | B | 17 | R | 33 | h | 49 | x |
| 2 | C | 18 | S | 34 | i | 50 | y |
| 3 | D | 19 | T | 35 | j | 51 | z |
| 4 | E | 20 | U | 36 | k | 52 | 0 |
| 5 | F | 21 | V | 37 | l | 53 | 1 |
| 6 | G | 22 | W | 38 | m | 54 | 2 |
| 7 | H | 23 | X | 39 | n | 55 | 3 |
| 8 | I | 24 | Y | 40 | o | 56 | 4 |
| 9 | J | 25 | Z | 41 | p | 57 | 5 |
| 10 | K | 26 | a | 42 | q | 58 | 6 |
| 11 | L | 27 | b | 43 | r | 59 | 7 |
| 12 | M | 28 | c | 44 | s | 60 | 8 |
| 13 | N | 29 | d | 45 | t | 61 | 9 |
| 14 | O | 30 | e | 46 | u | 62 | + |
| 15 | P | 31 | f | 47 | v | 63 | / |
2. Theorie – Wie Base64 funktioniert
Verstehe die Grundlagen der Base64-Kodierung.
Was ist Base64?
Base64 ist eine Kodierung, die Binärdaten in ASCII-Text umwandelt:
- Zweck: Binärdaten über textbasierte Protokolle senden
- Zeichen: 64 verschiedene ASCII-Zeichen
- Größe: +33% größer als Original
- Verwendung: E-Mail, URLs, JSON, XML
Wie funktioniert es?
Schritt-für-Schritt:
- 1. Text → Bytes: "Hallo" wird zu 5 Bytes
- 2. Bytes → Bit-Gruppen: 3 Bytes = 4 Base64-Zeichen
- 3. Bit → Base64-Zeichen: 6 Bit = 1 Zeichen
- 4. Padding: Fehlende Zeichen mit "=" auffüllen
URL-safe Base64
Standard Base64 hat problematische Zeichen für URLs:
- + wird in URLs als Leerzeichen interpretiert
- / kollidiert mit URL-Pfaden
- = ist als Query-Parameter problematisch
RFC 4648 Lösung:
- + → - (Bindestrich)
- / → _ (Unterstrich)
- = wird oft weggelassen
Best Practices
- Nicht für Sicherheit: Base64 ist keine Verschlüsselung!
- URL-safe verwenden: Für URLs, JWT, Cookies
- Größe beachten: +33% Overhead
- Data-URLs:
data:image/png;base64,... - UTF-8: Bei Text immer UTF-8 verwenden
- Padding: Für JWT weglassen (Base64URL)
Wussten Sie schon?
Base64 macht Daten 33% größer, weil 3 Bytes auf 4 Zeichen abgebildet werden. Trotzdem ist es extrem nützlich: Ohne Base64 könnten wir keine Bilder in HTML einbetten, keine E-Mail-Anhänge versenden und keine JWTs in URLs verwenden. Übrigens: Die Kodierung ist keine Sicherheitsmaßnahme – jeder kann Base64 in Sekunden dekodieren!
3. Geschichte von Base64
Von E-Mail-Anhängen zu modernen Web-APIs.
Erste E-Mail
Ray Tomlinson sendet die erste E-Mail. Problem: E-Mail-Systeme waren ursprünglich nur für 7-Bit-ASCII ausgelegt. Binärdaten konnten nicht direkt übertragen werden.
PEM (RFC 989)
Privacy Enhanced Mail definiert erstmals eine Base64-Variante für E-Mail-Anhänge und verschlüsselte Nachrichten. Erste standardisierte Verwendung.
MIME (RFC 1521)
MIME (Multipurpose Internet Mail Extensions) standardisiert Base64 für E-Mail-Anhänge. Bilder, PDFs und andere Binärdateien können nun per E-Mail versendet werden.
Data-URLs (RFC 2397)
Data-URLs erlauben Base64-kodierte Daten direkt in HTML/CSS. Kleine Bilder können als data:image/png;base64,... eingebettet werden – ohne separate HTTP-Anfrage.
RFC 4648 – Base16/32/64
RFC 4648 standardisiert Base16, Base32 und Base64. Definiert auch die URL-safe Variante (Base64URL) mit - und _ statt + und /.
JWT (RFC 7519)
JSON Web Tokens werden Standard für Authentifizierung. Sie bestehen aus drei Base64URL-kodierten Teilen: Header, Payload und Signatur. Heute Milliarden von JWTs täglich.
Base64 überall
Base64 ist allgegenwärtig: In Data-URLs, JWTs, OAuth-Tokens, API-Responses, Kubernetes-Secrets und unzähligen anderen Standards. Die einfache Idee von 1971 ist heute unverzichtbar.
4. FAQ – Häufige Fragen
Häufige Fragen zu Base64
Base64 ist eine Kodierung, die Binärdaten in Text umwandelt:
- Zweck: Binärdaten über textbasierte Protokolle senden
- Beispiel: Ein Bild per E-Mail versenden
- Format: Nur ASCII-Zeichen (A-Z, a-z, 0-9, +, /)
- Größe: 33% größer als Original
Wo wird Base64 verwendet?
- E-Mail: Anhänge (MIME)
- Data-URLs: Bilder in HTML/CSS
- JWT: JSON Web Tokens
- APIs: Binärdaten in JSON
- Kubernetes: Secrets
Wichtig: Base64 ist keine Verschlüsselung – jeder kann es dekodieren!
Nein, Base64 ist NICHT sicher!
- Keine Verschlüsselung: Jeder kann Base64 dekodieren
- Kein Schlüssel: Keine Authentifizierung möglich
- Umkehrbar: Encoder/Decoder sind öffentlich
- Sichtbar: In URLs, Cookies, Logs lesbar
Nur für Kodierung nutzen:
- Transport: Binärdaten übertragen
- Speicherung: Daten in Textdateien
- Kompatibilität: Mit textbasierten Systemen
Für Sicherheit: AES, RSA, TLS verwenden! Base64 kann als Schicht über Verschlüsselung genutzt werden.
URL-safe Base64 (Base64URL) ersetzt problematische Zeichen:
| Standard | URL-safe | Grund |
|---|---|---|
+ | - | + wird als Leerzeichen interpretiert |
/ | _ | / kollidiert mit URL-Pfaden |
= | (weggelassen) | = ist in Query-Strings problematisch |
RFC 4648: Definiert die URL-safe Variante offiziell.
Verwendung:
- URLs: In Pfaden und Query-Strings
- Cookies: Session-Tokens
- JWT: Alle drei Teile
- OAuth: Access Tokens
Achtung: Standard und URL-safe sind nicht kompatibel!
Weil 3 Bytes auf 4 Zeichen abgebildet werden:
- Input: 3 Bytes = 24 Bit
- Output: 4 Base64-Zeichen × 6 Bit = 24 Bit
- Verhältnis: 4/3 = 1,333... → +33%
Beispiele:
- 3 Bytes → 4 Zeichen
- 6 Bytes → 8 Zeichen
- 100 KB → ~133 KB
- 1 MB → ~1,33 MB
Padding: Fehlende Bytes werden mit = aufgefüllt.
Konsequenz: Für große Dateien ist Base64 ineffizient – besser Binärübertragung!
Eine Data-URL ist eine URL, die die Daten direkt enthält:
Format:
data:[MIME-Typ][;base64],Daten- Beispiel:
data:image/png;base64,iVBORw0KGgo...
Vorteile:
- Kein HTTP-Request: Daten sind direkt eingebettet
- Inline: Perfekt für kleine Bilder/Icons
- Kein Server: Statische Seiten ohne Backend
Nachteile:
- Größer: +33% Overhead
- Nicht cachebar: Bei jedem Laden neu
- HTML aufblähen: Große Dateien vermeiden
Empfehlung: Nur für Dateien < 10 KB nutzen!
Häufige Ursachen:
- URL-safe vs. Standard:
-statt+? - Padding fehlt:
=am Ende fehlt? - Zeilenumbrüche: Enthält der String
\n? - Whitespace: Leerzeichen/Tabs im String?
- Falsches Encoding: Latin-1 statt UTF-8?
- Abgeschnitten: String ist unvollständig?
Lösungen:
- Normalisieren: Whitespace entfernen
- Konvertieren: URL-safe → Standard
- Padding hinzufügen: Bis Länge durch 4 teilbar
- UTF-8 prüfen: TextDecoder mit 'utf-8'
Nur mit URL-safe Base64 (Base64URL)!
Problem mit Standard-Base64:
- + wird in URLs zu Leerzeichen (URL-Encoding)
- / wird als Pfad-Trenner interpretiert
- = in Query-Strings kann Probleme machen
Lösung – URL-safe Base64:
+→-/→_=weglassen (Padding optional)
Beispiel JWT:
eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.abc123
Unser Tool: Aktiviere die Option "URL-safe", um automatisch zu konvertieren!
Modern (Browser & Node.js):
- Dekodieren:
atob(base64String) - Kodieren:
btoa(textString)
Aber Achtung – Unicode!
atob/btoafunktionieren nur mit Latin-1- Für UTF-8:
TextEncoderundTextDecoder
UTF-8 korrekt:
- Kodieren:
btoa(String.fromCharCode(...new TextEncoder().encode(str))) - Dekodieren:
new TextDecoder().decode(Uint8Array.from(atob(b64), c => c.charCodeAt(0)))
Unser Tool macht das automatisch für dich – mit voller UTF-8-Unterstützung!
Zusammenfassung
Die wichtigsten Punkte
- Base64: Binärdaten in ASCII-Text umwandeln
- Zweck: Transport über textbasierte Protokolle
- Größe: +33% Overhead (3 Bytes → 4 Zeichen)
- Alphabet: A-Z, a-z, 0-9, +, / (und = als Padding)
- URL-safe: +→-, /→_, = weglassen (RFC 4648)
- Keine Verschlüsselung: Jeder kann dekodieren!
- Data-URLs:
data:image/png;base64,... - JWT: Header.Payload.Signature – alle Base64URL
- UTF-8: TextEncoder/TextDecoder für Unicode
- Unser Tool: Text, Datei und Batch-Modus