Anleitung
- Geben Sie Text in das Eingabefeld ein oder fügen Sie ihn ein.
- Alle Kodierungen werden schon während der Eingabe aktualisiert: Binär, Oktal, Dezimal, Hex, die Base32-Varianten, Base36 bis Base91 sowie uuencode und xxencode.
- Vergleichen Sie die Ausgaben, um zu sehen, welche am kürzesten ist oder nur Zeichen enthält, die Sie verwenden können.
- Klicken Sie neben dem gewünschten Ergebnis auf „Kopieren“.
Alle Kodierungen aus einer Eingabe
Jede Kodierung auf dieser Seite wandelt dieselben Bytes in eine andere Zeichenfolge um. Der direkte Vergleich ist der schnellste Weg, eine Kodierung für ein Projekt auszuwählen, einen String aus einer Logdatei oder Konfigurationsdatei wiederzuerkennen oder zu verstehen, wie sich die Formate unterscheiden. Ihr Text wird als UTF-8-Bytes kodiert, sodass ein Umlaut oder ein Buchstabe mit Akzent als zwei Bytes zählt und ein chinesisches Zeichen als drei. Alles läuft in Ihrem Browser.
- Zahlen pro Byte. Binär, Oktal und Dezimal schreiben jedes Byte einzeln. Gut lesbar, aber lang.
- Bitgruppen. Hex, Base32 (mit Base32hex, Crockford und z-base-32), Base64 und Base64URL ordnen jedem Zeichen eine feste Anzahl von Bits zu, sodass die Ausgabelänge nur von der Eingabelänge abhängt.
- Große Zahlen. Base36, Base58 und Base62 behandeln die gesamte Eingabe als eine einzige große Ganzzahl. Die Länge kann je nach Wert um ein Zeichen schwanken, und führende Nullbytes bleiben als führende Zeichen erhalten.
- Blöcke. Base45 macht aus 2 Bytes 3 Zeichen, Ascii85, Z85 und Base85 machen aus 4 Bytes 5 Zeichen, und Base91 packt 13 oder 14 Bit in jedes Zeichenpaar.
- Zeilen. uuencode und xxencode sind ältere Formate aus der Welt von E-Mail und Usenet. Sie schreiben Daten zeilenweise, und jede Zeile beginnt mit einem Längenzeichen.
Ausgabegröße im Vergleich
Wie viele Zeichen jede Kodierung pro Eingabebyte benötigt und wie lang ein 32-Byte-Wert wie ein SHA-256-Hash oder ein öffentlicher Ed25519-Schlüssel wird:
| Kodierung | Zeichen pro Byte | Aus 32 Bytes werden |
|---|---|---|
| Base16 (Hex) | 2,0 | 64 |
| Base32 | 1,6 | 56 (52 ohne Auffüllung) |
| Base36 | etwa 1,55 | 49 oder 50 |
| Base45 | 1,5 | 48 |
| Base58 | etwa 1,37 | 43 oder 44 |
| Base62 | etwa 1,34 | 42 oder 43 |
| Base64 | etwa 1,33 | 44 (43 ohne Auffüllung) |
| Base85 | 1,25 | 40 |
| Base91 | etwa 1,23 | 39 oder 40 |
Der Wechsel von Hex zu Base64 spart ein Drittel der Länge. Der weitere Schritt von Base64 zu Base91 bringt nur noch etwa 8 % zusätzlich.
Welche Kodierung die richtige ist
Die kürzeste Ausgabe ist nicht immer die beste. Ascii85 kann Anführungszeichen und Backslashes enthalten, Base91 doppelte Anführungszeichen, sodass beide in JSON, HTML oder Shell-Befehlen unter Umständen maskiert werden müssen. Überlegen Sie, wo der String verwendet werden soll:
- URLs und Dateinamen: Base64URL, Base58 oder Base62.
- Vorlesen oder Abtippen von Hand: Crockford Base32 oder Base58, die leicht verwechselbare Zeichen auslassen.
- Systeme ohne Unterscheidung von Groß- und Kleinschreibung: Hex, Base32 oder Base36.
- QR-Codes: Base45, das nur die Zeichen des alphanumerischen QR-Modus verwendet.
- Kompakter Text in PDF, Git oder ZeroMQ: Ascii85, Base85 oder Z85.
- Maximale Kompatibilität: Base64, das von nahezu jeder Programmiersprache und Plattform unterstützt wird.
Häufig gestellte Fragen
Welche Kodierung liefert die kürzeste Ausgabe?
Von den Kodierungen auf dieser Seite ist Base91 mit etwa 1,23 Zeichen pro Byte am kompaktesten, gefolgt von Ascii85, Z85 und Base85 mit 1,25. Base64 benötigt etwa 1,33, wird aber weitaus breiter unterstützt und ist deshalb die übliche Standardwahl.
Warum sind Base58- und Base62-Ergebnisse bei gleich großen Eingaben unterschiedlich lang?
Diese Kodierungen wandeln die gesamte Eingabe als eine einzige große Zahl um, daher hängt die Länge von ihrem Wert ab und nicht nur von ihrer Größe. Außerdem fügt jedes führende Nullbyte ein führendes Zeichen hinzu. Hex, Base32 und Base64 liefern bei gleicher Byteanzahl immer dieselbe Länge.
Kann ich auf dieser Seite einen String dekodieren?
Warum ist die Binärausgabe so lang?
Binär schreibt für jedes Byte 8 Ziffern plus Trennzeichen und ist damit mindestens viermal so lang wie Hex. Diese Darstellung dient dazu, einzelne Bits zu betrachten, nicht zum Speichern oder Übertragen von Daten.
Wird mein Text an einen Server gesendet?
Nein. Alle Kodierungen werden per JavaScript in Ihrem Browser berechnet, und der Text verlässt nie Ihr Gerät.