UltKit

Base64 kodieren & dekodieren

Wandeln Sie Text oder eine Datei in Base64 um oder dekodieren Sie Base64 wieder in lesbaren Text. Unicode wird korrekt verarbeitet, das URL-sichere Alphabet ist nur einen Klick entfernt, und beim Dekodieren wird jedes der beiden Alphabete akzeptiert, mit oder ohne Padding.

Modus

0 Zeichen · 0 Wörter · 0 Zeilen

0 Zeichen · 0 Wörter · 0 Zeilen

Läuft komplett in diesem Browser-Tab. Ihr Text wird weder hochgeladen noch gespeichert.

Das Base64-Alphabet

Index → Zeichen nach RFC 4648. Die hervorgehobenen letzten beiden unterscheiden sich in der URL-sicheren Variante: 62 ist + oder -, 63 ist / oder _.

  1. 0A
  2. 1B
  3. 2C
  4. 3D
  5. 4E
  6. 5F
  7. 6G
  8. 7H
  9. 8I
  10. 9J
  11. 10K
  12. 11L
  13. 12M
  14. 13N
  15. 14O
  16. 15P
  17. 16Q
  18. 17R
  19. 18S
  20. 19T
  21. 20U
  22. 21V
  23. 22W
  24. 23X
  25. 24Y
  26. 25Z
  27. 26a
  28. 27b
  29. 28c
  30. 29d
  31. 30e
  32. 31f
  33. 32g
  34. 33h
  35. 34i
  36. 35j
  37. 36k
  38. 37l
  39. 38m
  40. 39n
  41. 40o
  42. 41p
  43. 42q
  44. 43r
  45. 44s
  46. 45t
  47. 46u
  48. 47v
  49. 48w
  50. 49x
  51. 50y
  52. 51z
  53. 520
  54. 531
  55. 542
  56. 553
  57. 564
  58. 575
  59. 586
  60. 597
  61. 608
  62. 619
  63. 62+ -
  64. 63/ _

Wie lang die Ausgabe wird

Je 3 Eingabe-Bytes werden zu 4 Zeichen; eine letzte Gruppe aus 1 oder 2 Bytes wird in Standard-Base64 mit = aufgefüllt und in der URL-sicheren Form nicht aufgefüllt.

EingabeBytesStandardURL-sicherLänge
U1VQ==VQ4
Ul2VWw=VWw4
Ult3VWx0VWx04
UltK4VWx0Sw==VWx0Sw8
UltKi5VWx0S2k=VWx0S2k8
UltKit6VWx0S2l0VWx0S2l08

Was Base64 macht

Base64, definiert in RFC 4648, schreibt beliebige Bytes mit 64 druckbaren ASCII-Zeichen: A–Z, a–z, 0–9, + und /. Jede Gruppe aus drei Bytes (24 Bit) wird in vier 6-Bit-Zahlen zerlegt, und jede Zahl wählt ein Zeichen aus dem Alphabet aus. Ist die Eingabelänge kein Vielfaches von drei, wird die letzte Gruppe mit einem oder zwei =-Zeichen aufgefüllt. Das Ergebnis ist immer etwa 33 % größer als die Eingabe: 4 Zeichen für je 3 Bytes.

Es gibt Base64, weil viele Übertragungswege für Text gebaut wurden. E-Mail (MIME), data:-URLs in HTML und CSS, JSON-Felder mit Bildern oder Zertifikaten und HTTP-Basic-Authentifizierungs-Header nutzen alle Base64, um Binärdaten sicher zu übertragen. Base64 ist keine Verschlüsselung und verbirgt nichts; zum Dekodieren ist kein Schlüssel nötig.

Unicode und die URL-sichere Variante

Base64 kodiert Bytes, nicht Buchstaben, deshalb muss Text zuerst in Bytes umgewandelt werden. Dieses Tool verwendet immer UTF-8, die Kodierung, auf der das Web läuft: é wird zu zwei Bytes, ein Emoji zu vier. Die im Browser eingebaute Funktion btoa allein löst bei jedem Zeichen oberhalb von U+00FF einen Fehler aus, weshalb einfache Encoder bei Umlauten und Emoji scheitern; hier läuft der Text zuerst durch TextEncoder, und beim Dekodieren kehrt TextDecoder den Vorgang um. Sind die dekodierten Bytes kein gültiges UTF-8 (etwa ein Bild oder eine ZIP-Datei), zeigt das Tool sie hexadezimal an statt als unleserlichen Text.

Standard-Base64 verwendet + und /, die in URLs und Dateinamen eine besondere Bedeutung haben. Das URL-sichere Alphabet aus Abschnitt 5 von RFC 4648 ersetzt sie durch - und _, und das Auffüllen entfällt meist. JSON Web Tokens verwenden genau diese Form. Der Decoder akzeptiert beide Alphabete und fehlendes Auffüllen, Sie können also beides einfügen.

Dateien und Bilder kodieren

Wählen Sie eine Datei aus, dann liest das Tool sie lokal mit FileReader und gibt ihren Base64-Wert zurück, oder eine vollständige data:-URL mit dem MIME-Typ der Datei, bereit zum Einfügen in ein img-Tag oder einen CSS-Hintergrund. Eingebettete Bilder sparen eine HTTP-Anfrage, werden aber um ein Drittel größer und lassen sich nicht separat zwischenspeichern, daher eignen sie sich eher für kleine Icons als für Fotos. Für Bilder mit Vorschau und fertigen HTML- und CSS-Schnipseln nutzen Sie Bild in Base64.

Häufig gestellte Fragen

Warum ist die Base64-Ausgabe länger als meine Eingabe?
Aus je 3 Bytes werden 4 Zeichen, die Ausgabe ist also etwa 4/3 so groß wie die Eingabe, plus bis zu zwei Füllzeichen. Text mit Nicht-ASCII-Zeichen wird noch länger, weil UTF-8 zwei bis vier Bytes pro Zeichen braucht.
Was bedeuten die =-Zeichen am Ende?
Das ist das Auffüllen (Padding). Es sorgt dafür, dass die Ausgabelänge ein Vielfaches von vier ist, wenn die Eingabelänge kein Vielfaches von drei ist. Ein = bedeutet, dass die letzte Gruppe zwei Bytes hatte, zwei = bedeuten, dass sie ein Byte hatte.
Warum schlägt das Dekodieren mit einem Fehler wegen ungültiger Zeichen fehl?
Die Eingabe enthält etwas außerhalb des Alphabets, etwa ein Leerzeichen mitten im Wort, ein Anführungszeichen oder ein % aus der URL-Kodierung. Zeilenumbrüche und fehlendes Auffüllen werden toleriert, andere Zeichen nicht.
Ist es sicher, ein Passwort in Base64 zu kodieren?
Base64 bietet keinerlei Schutz. Die HTTP-Basic-Authentifizierung sendet user:password in Base64, weshalb sie nur über HTTPS verwendet werden darf. Schützen Sie Geheimnisse mit echter Verschlüsselung oder Hashing.
Was ist der Unterschied zwischen Base64 und Base64url?
Nur zwei Zeichen und das Auffüllen: Base64url verwendet - und _ statt + und / und lässt = meist weg, sodass das Ergebnis ohne Maskierung in URLs und Dateinamen stehen kann.