Zum Base64-Encoder springen

RFC 4648 · Encoder & Decoder

Alles in Base64 kodieren – ohne irgendetwas hochzuladen.

Ein kostenloser Online-Base64-Encoder und -Decoder für Text, Dateien und Bilder – kodiert per JavaScript in Ihrem eigenen Browser-Tab. Es wird nichts hochgeladen, deshalb funktioniert er auch offline weiter und hat kein Größenlimit.

  • Kodiert beim Tippen
  • Text, Dateien & Bilder
  • URL-safe- & MIME-Modus
  • Keine Werbung, keine Anmeldung
0 Zeichen · 0 B
0 Zeichen · 0 B
Optionen
Kodierungsvarianten

Ctrl+Enter kodieren Ctrl+Shift+C Ergebnis kopieren Ctrl+Shift+X Richtung umkehren

Base64 online kodieren – kostenlos, sofort und privat

Mit diesem Tool können Sie Base64 online kodieren, und zwar in Ihrem Browser statt auf einem Server. Tippen Sie in das Feld oben, und das Base64 erscheint während der Eingabe: kein Button, kein Neuladen, kein Upload. Wechseln Sie zu Dekodieren, um umgekehrt zu arbeiten, oder öffnen Sie den Tab Datei & Bild, um ein Bild in Base64 zu kodieren und eine Data-URI zu erhalten, die Sie direkt in HTML oder CSS einfügen können.

Alles, was der Standard vorsieht, ist dabei: das Standardalphabet, URL-safe-Base64 (RFC 4648 §5), MIME-Zeilen mit 76 Zeichen, LF- und CRLF-Zeilenumbrüche, zeilenweise Kodierung und sechs Zeichensätze von UTF-8 bis ISO-8859-1 und UTF-16. Wenn Sie lieber im Code Base64 kodieren, decken die Beispiele weiter unten Python, JavaScript, Linux und macOS, PowerShell, PHP, Java, Go, C# und Ruby ab.

Zuletzt aktualisiert:

Warum dieses Tool

Der Unterschied liegt darin, wo kodiert wird.

Die meisten Base64-Tools schicken Ihre Datei per POST an einen Server, kodieren sie dort und geben einen Download-Link zurück. Ihre Daten verlassen also Ihren Rechner – für eine Umwandlung, die Ihr Browser in Mikrosekunden erledigt. Dieses Tool stellt diese Anfrage nie.

Funktionsvergleich zwischen diesem Base64-Encoder und typischen serverbasierten Online-Base64-Tools
Funktion freebase64encode.com Typischer Online-Encoder
Wo Ihre Daten verarbeitet werden Immer in Ihrem Browser-Tab Auf einen Server hochgeladen
Dateigrößenlimit Nur der Speicher Ihres Geräts Meist auf 100 MB begrenzt
Dateien auf einem Server gespeichert Nie – es gibt keinen Endpunkt Vorübergehend, dann gelöscht
Funktioniert offline weiter Ja, sobald die Seite geladen ist Nein
Live-Kodierung beim Tippen Standardmäßig an Optional oder per Button
Kodieren und Dekodieren Eine Seite, ein Klick zum Wechseln Zwei getrennte Seiten
Bild → Data-URI + HTML/CSS/Markdown Integriert, mit Vorschau Nicht vorhanden
Codebeispiele für 9 Sprachen Auf der Seite Nicht vorhanden
Anzeige des Größenzuwachses Live in Bytes und % Nicht angezeigt
Werbung und Cookie-Banner Keine, und keine Tracking-Cookies Meistens vorhanden

Im Code

Base64 kodieren in Python, JavaScript, Bash, PowerShell und fünf weiteren Sprachen.

Kodieren und Dekodieren zum Kopieren und Einfügen für die Sprachen, nach denen am häufigsten gesucht wird – jeweils mit dem Stolperstein, der jeden schon einen Nachmittag gekostet hat.

Base64 kodieren in Python

Python bringt Base64 in der Standardbibliothek mit. Der häufigste Stolperstein: b64encode erwartet bytes, nicht str – Text muss also zuerst in UTF-8 kodiert werden.

import base64

# Encode a string ─ note the .encode("utf-8"): b64encode takes bytes, not str
text = "Man is distinguished"
encoded = base64.b64encode(text.encode("utf-8")).decode("ascii")
print(encoded)                       # TWFuIGlzIGRpc3Rpbmd1aXNoZWQ=

# Decode it back
decoded = base64.b64decode(encoded).decode("utf-8")

# URL-safe, unpadded (RFC 4648 §5) ─ the JWT flavour
base64.urlsafe_b64encode(b"data").rstrip(b"=")

# Encode a file, wrapped at 76 characters for MIME
with open("photo.png", "rb") as f:
    mime = base64.encodebytes(f.read()).decode("ascii")

# Build a data URI for an image
uri = "data:image/png;base64," + base64.b64encode(open("photo.png", "rb").read()).decode()

Die Mechanik

So funktioniert Base64-Kodierung wirklich.

Base64 schreibt beliebige Bytes mit 64 Zeichen neu, die jedes System versteht. Es nimmt drei Bytes – 24 Bit – und teilt sie neu in vier Gruppen à 6 Bit. Jede Gruppe ist ein Index in das Alphabet A–Z a–z 0–9 + /. Da aus 3 Bytes immer 4 Zeichen werden, ist die Ausgabe genau ein Drittel größer.

Durchgerechnetes Beispiel: Man → TWFu

Text Man
ASCII 7797110
Bitmuster 01001101 01100001 01101110
In 6 Bit geteilt 010011 010110 000101 101110
Index 19 · 22 · 5 · 46
Base64 TWFu

Ist die Eingabelänge kein Vielfaches von drei, wird die letzte Gruppe mit = aufgefüllt, damit die Ausgabe ein Vielfaches von vier bleibt. Ein übriges Byte ergibt ==, zwei übrige Bytes ergeben =.

Beispiele für Base64-Kodierung

So sehen gängige Strings aus, wenn sie als UTF-8 in Base64 kodiert werden. Fügen Sie einen davon oben ins Tool ein, um es zu prüfen.

Beispiel-Strings und ihre Base64-Kodierung
Eingabe Base64 Hinweis
Hello, World! SGVsbG8sIFdvcmxkIQ== Zwei =, weil bei 13 Bytes eines übrig bleibt
Hello World SGVsbG8gV29ybGQ= 11 Bytes, also ein =
hello aGVsbG8=
base64 YmFzZTY0 6 Bytes sind durch 3 teilbar, also kein Padding
user:password dXNlcjpwYXNzd29yZA== Wert eines HTTP-Basic-Auth-Headers
héllo 🎉 aMOpbGxvIPCfjok= UTF-8: é belegt 2 Bytes, das Emoji 4
{"alg":"HS256","typ":"JWT"} eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 Ein JWT-Header, URL-safe und ohne Padding

Das Base64-Alphabet (Indextabelle)

Jeder 6-Bit-Wert von 0 bis 63 steht für ein Zeichen. Das URL-safe-Alphabet ist identisch, nur ist 62 ein - und 63 ein _. = ist Padding und gehört nicht zum Alphabet.

Base64-Indextabelle: Werte 0 bis 63 und ihre Zeichen
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 /

Base64-Varianten im Vergleich

„Base64“ ist eine Familie. Alle Varianten teilen dieselben 62 Buchstaben und Ziffern und unterscheiden sich in den letzten beiden Zeichen, im Padding und im Zeilenumbruch. Das Tool oben erzeugt die ersten drei.

Vergleich der Base64-Varianten: Standard, URL-safe, MIME und PEM
VarianteSpezifikationZeichen 62 / 63PaddingZeilenumbrücheVerwendung
Standard RFC 4648 §4 + / Pflicht Keine Allgemein, JSON, Data-URIs
URL-safe (base64url) RFC 4648 §5 - _ Meist weggelassen Keine JWTs, URLs, Dateinamen
MIME RFC 2045 + / Pflicht CRLF alle 76 E-Mail-Anhänge
PEM RFC 7468 + / Pflicht Alle 64, mit BEGIN/END TLS-Zertifikate, Schlüssel

Wo Base64 verwendet wird

E-Mail-Anhänge

SMTP wurde für 7-Bit-Text spezifiziert. MIME (RFC 2045) kodiert Anhänge in Base64 und bricht die Ausgabe alle 76 Zeichen um, damit Mailserver sie unverändert weiterreichen.

Data-URIs

data:image/png;base64,… bettet ein kleines Bild, eine Schrift oder ein SVG direkt in HTML oder CSS ein und spart eine Anfrage. Lohnt sich unter ein paar Kilobyte; darüber kosten die 33 % Zuwachs und das fehlende Caching mehr als die Anfrage.

JSON- und XML-Daten

Keines der beiden Formate kann beliebige Bytes aufnehmen. Base64 macht aus einer Datei einen einfachen String, den jeder JSON-Parser verarbeitet – so wandern Binärdaten durch REST-APIs.

JWTs und URLs

JSON Web Tokens verwenden base64url – die Variante aus RFC 4648 §5 mit - und _ statt + und / und ohne Padding –, damit ein Token gefahrlos in einer URL, einem Cookie oder einem Header stehen kann.

HTTP Basic Auth

Authorization: Basic ist wörtlich base64(benutzername:passwort). Das ist Kodierung, keine Verschlüsselung – genau deshalb ist Basic Auth nur über HTTPS akzeptabel.

Konfigurations- und Secret-Dateien

Kubernetes-Secrets, TLS-Zertifikate im PEM-Format und SSH-Schlüssel speichern Binärdaten als Base64, damit die Datei lesbare, vergleichbare und kopierbare Textdatei bleibt.

Sechs Fehler, die einen Nachmittag kosten

Base64 ist keine Verschlüsselung

Jeder kann es mit einem einzigen Befehl dekodieren. Verstecken Sie damit nie ein Passwort, einen API-Schlüssel oder personenbezogene Daten – dafür gibt es echte Verschlüsselung.

Unterschiedliche Zeichensätze zerstören Text

Base64 kodiert Bytes, und Text wird erst durch die Wahl eines Zeichensatzes zu Bytes. Kodieren Sie als UTF-8 und dekodieren Sie als Latin-1, erhalten Sie Zeichensalat. Bleiben Sie auf beiden Seiten bei UTF-8.

echo hängt einen Zeilenumbruch an

echo "hi" | base64 kodiert drei Bytes, nicht zwei, weil echo ein \n anhängt. Mit printf %s kodieren Sie genau das, was Sie getippt haben.

Zeilenumbrüche verändern den String

MIME-Ausgabe enthält alle 76 Zeichen ein CRLF. Die meisten Decoder überspringen Leerraum, aber ein strikter Vergleich oder Hash zweier „identischer“ Strings schlägt fehl, wenn einer umbrochen ist.

+ und / gehen in URLs kaputt

Aus + wird beim Dekodieren eines Formular-Query-Strings ein Leerzeichen, und / trennt Pfade. Verwenden Sie die URL-safe-Variante, sobald der Wert in eine URL oder einen Dateinamen kommt.

Die Daten wachsen um ein Drittel

Aus je 3 Bytes werden 4 Zeichen. Einen großen Upload per Base64 in einen JSON-Body zu packen, kostet auf beiden Seiten Bandbreite und Speicher – schicken Sie stattdessen multipart/form-data.

Fragen

Base64-Kodierung: Fragen und Antworten.

Was ist Base64-Kodierung?

Base64 ist ein Verfahren zur Binär-zu-Text-Kodierung, das Binärdaten mit 64 druckbaren ASCII-Zeichen darstellt (A–Z, a–z, 0–9, + und /). Es sorgt dafür, dass Binärdaten sicher durch Kanäle kommen, die für Text gedacht sind – E-Mail-Texte, JSON- und XML-Dokumente, HTTP-Header, URLs und HTML-Attribute. Base64 ist eine Kodierung, keine Verschlüsselung: Jeder kann es dekodieren, es bietet also keine Vertraulichkeit.

Wie kodiere ich Text online in Base64?

Fügen Sie Ihren Text in das Eingabefeld auf dieser Seite ein oder tippen Sie ihn. Das Ergebnis erscheint sofort im Ausgabefeld – ohne Button und ohne Neuladen, denn die Kodierung läuft während der Eingabe in Ihrem Browser. Mit dem Button Kopieren oder Strg+Umschalt+C landet der Base64-String in der Zwischenablage.

Wie kodiere ich einen String in Base64?

Ein String wird zuerst mit einem Zeichensatz – fast immer UTF-8 – in Bytes umgewandelt, und diese Bytes werden dann in Base64 kodiert. Auf dieser Seite passiert das automatisch: String eintippen, Ergebnis kopieren. Zum Beispiel ergibt "Hello, World!" in Base64 SGVsbG8sIFdvcmxkIQ==. Im Code ist es in jeder gängigen Sprache eine Zeile; siehe die Beispiele für Python, JavaScript, Bash, PowerShell, PHP, Java, Go, C# und Ruby.

Ist dieser Base64-Encoder sicher und privat?

Ja. Jedes Byte wird lokal von JavaScript in Ihrem eigenen Browser-Tab kodiert. Ihre Texte, Dateien und Bilder werden nie an einen Server übertragen, nie in einer Datenbank gespeichert und nie protokolliert – die Website ist eine vollständig statische Seite ohne jeden Upload-Endpunkt. Prüfen können Sie das im Netzwerk-Tab der DevTools während des Kodierens oder indem Sie die Internetverbindung trennen und sehen, dass das Tool weiter funktioniert.

Wie kodiere ich in Python Base64?

Verwenden Sie das eingebaute Modul base64. Kodieren mit base64.b64encode(data.encode("utf-8")).decode("ascii"), dekodieren mit base64.b64decode(encoded).decode("utf-8"). Beachten Sie, dass b64encode bytes erwartet, nicht str – deshalb wird die Eingabe zuerst in UTF-8 kodiert. Für URL-safe-Ausgabe nehmen Sie base64.urlsafe_b64encode, für MIME-Ausgabe mit 76-Zeichen-Zeilen base64.encodebytes.

Wie kodiere ich mit PowerShell oder unter Windows Base64?

In PowerShell kodieren Sie einen String mit [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("hello")) und eine Datei mit [Convert]::ToBase64String([IO.File]::ReadAllBytes("C:\pfad\datei.png")). In cmd.exe funktioniert certutil -encode in.png out.b64 auf jeder Windows-Installation, fügt aber BEGIN- und END-Kopfzeilen hinzu. [Text.Encoding]::Unicode (UTF-16 LE) nur für powershell -EncodedCommand verwenden.

Wie kodiere ich in JavaScript Base64?

Für ASCII-Text kodiert btoa(str) und dekodiert atob(str). btoa wirft bei Zeichen über U+00FF einen Fehler, deshalb Unicode-Text zuerst in Bytes umwandeln: btoa(Array.from(new TextEncoder().encode(str), (b) => String.fromCharCode(b)).join("")). Vermeiden Sie die Spread-Form String.fromCharCode(...bytes), die bei großen Eingaben den Call-Stack sprengt. In Node.js nehmen Sie Buffer.from(str, "utf8").toString("base64"). Moderne Laufzeitumgebungen bieten außerdem Uint8Array.prototype.toBase64().

Wie kodiere ich unter Linux eine Datei in Base64?

Mit dem coreutils-Befehl base64: base64 datei.txt kodiert, base64 -d datei.b64 dekodiert. Mit -w 0 schalten Sie den Zeilenumbruch ab, wenn Sie eine einzige Zeile brauchen, mit -w 76 erhalten Sie MIME-konforme Ausgabe. Einen String kodieren Sie direkt per Pipe: printf %s "hello" | base64 – nehmen Sie printf statt echo, damit kein abschließender Zeilenumbruch mitkodiert wird.

Wie kodiere ich auf dem Mac Base64?

macOS bringt im Terminal den BSD-Befehl base64 mit. Eine Datei kodieren Sie mit base64 -i datei.png -o datei.b64, einen String mit printf %s "hello" | base64, dekodieren mit base64 -D -i datei.b64 -o datei.png. Anders als GNU base64 unter Linux bricht er standardmäßig keine Zeilen um und kennt keine Option -w. Per Pipe in pbcopy landet das Ergebnis direkt in der Zwischenablage.

Wie kodiere ich ein Bild in Base64?

Öffnen Sie auf dieser Seite den Tab Datei & Bild und legen Sie Ihr Bild ab. Sie erhalten das rohe Base64, eine einfügefertige Data-URI (data:image/png;base64,...) sowie fertige HTML-, CSS- und Markdown-Snippets. Base64 macht ein Bild etwa 33 % größer – betten Sie daher nur kleine Bilder ein (unter etwa 5 KB) und liefern Sie größere als normale Dateien aus, die der Browser cachen kann.

Was ist URL-safe-Base64?

Standard-Base64 verwendet + und /, die in URLs und Dateinamen eine reservierte Bedeutung haben. URL-safe-Base64 (RFC 4648 §5, auch base64url genannt) ersetzt + durch - und / durch _ und lässt meist das =-Padding weg. JSON Web Tokens verwenden genau das. Aktivieren Sie auf dieser Seite die Option URL-safe, um es zu erzeugen.

Warum endet mein Base64-String mit =-Zeichen?

Base64 verarbeitet die Eingabe in Gruppen zu 3 Bytes, aus denen 4 Zeichen werden. Ist die Eingabelänge kein Vielfaches von 3, wird die letzte Gruppe mit = aufgefüllt, damit die Ausgabelänge ein Vielfaches von 4 bleibt. Ein übriges Byte ergibt zwei =, zwei übrige Bytes ergeben eines. Das Padding enthält keine Daten und ist in manchen Varianten wie base64url optional.

Um wie viel vergrößert Base64 meine Daten?

Um etwa 33 % – aus je 3 Eingabebytes werden 4 Ausgabezeichen, ein Verhältnis von 4/3. Die exakte Länge mit Padding beträgt 4 × ⌈n / 3⌉ Zeichen für n Eingabebytes: 10 Bytes werden zu 16 Zeichen, 1 MB zu etwa 1,33 MB. Im MIME-Modus kommen durch Zeilenumbrüche weitere rund 2,6 % hinzu (ein zwei Byte langes CRLF nach je 76 Zeichen). Dieses Tool zeigt die genaue Eingabe- und Ausgabegröße sowie den prozentualen Zuwachs während der Eingabe unter dem Ausgabefeld an.

Gibt es ein Dateigrößenlimit?

Ein serverseitiges Limit gibt es nicht, weil kein Server beteiligt ist. Die praktische Grenze sind der Speicher Ihres Geräts und die Limits des Browser-Tabs; auf dem Desktop funktionieren Dateien bis zu einigen hundert Megabyte in der Regel, und dieses Tool verarbeitet große Dateien in Blöcken, damit der Browser reaktionsfähig bleibt. Konkurrenztools, die auf einen Server hochladen, begrenzen meist auf 100 MB.

Funktioniert Base64-Kodierung mit Unicode und Emojis?

Ja. Text wird zuerst mit dem gewählten Zeichensatz in Bytes umgewandelt – standardmäßig UTF-8, das jeden Unicode-Codepunkt einschließlich Emojis abdeckt –, und diese Bytes werden dann in Base64 kodiert. Unterschiedliche Zeichensätze bei Encoder und Decoder sind die übliche Ursache für Zeichensalat; bleiben Sie daher auf beiden Seiten bei UTF-8, sofern Sie keinen konkreten Grund haben.