Anleitung
- Wählen Sie „Kodieren“, um Text oder Bytes in basE91 umzuwandeln, oder „Dekodieren“, um basE91 wieder in Daten zurückzuverwandeln.
- Geben Sie Ihre Eingabe ein, fügen Sie sie ein oder klicken Sie auf „Datei öffnen“. Stellen Sie die Eingabe für Rohbytes auf Hex um.
- Das Ergebnis wird während der Eingabe aktualisiert. Wählen Sie beim Dekodieren die Ausgabe als Text oder Hex.
- Kopieren Sie das Ergebnis oder laden Sie es als Datei herunter.
Was ist basE91?
basE91 ist eine Binär-zu-Text-Kodierung, die von Joachim Henke entwickelt wurde. Sie verwendet 91 der 95 druckbaren ASCII-Zeichen: alle außer dem Leerzeichen, dem Apostroph ', dem Bindestrich - und dem Backslash \.
Sie arbeitet nicht mit festen Byteblöcken. Der Encoder sammelt die Eingabebits in einem Puffer und entnimmt jeweils 13 davon. Ist der 13-Bit-Wert größer als 88, wird er als zwei Zeichen geschrieben. Ist er 88 oder kleiner, wird zusätzlich ein 14. Bit entnommen. Das passt trotzdem, weil zwei Zeichen zur Basis 91 insgesamt 91 × 91 = 8281 verschiedene Werte darstellen können. Je 13 oder 14 Bit werden also zu genau 2 Zeichen.
Daraus ergibt sich ein Overhead von höchstens etwa 23 %, bei Daten mit langen Folgen von Nullbytes sogar nur von etwa 14 %. Zufällige oder komprimierte Daten liegen nahe an der oberen Grenze.
basE91 im Vergleich
| Kodierung | Zeichen | Größe der Ausgabe |
|---|---|---|
| Hex | 16 | 2 × Eingabe |
| Base58 | 58 | etwa 1,37 × Eingabe |
| Base64 | 64 | 1,33 × Eingabe |
| Base85 / Ascii85 | 85 | 1,25 × Eingabe |
| basE91 | 91 | etwa 1,14 bis 1,23 × Eingabe |
Um die tatsächlichen Ausgabelängen für Ihre eigenen Daten zu vergleichen, geben Sie diese unter Alle Kodierungen ein.
Was Sie beachten sollten
- Maskierung. Das Alphabet enthält das doppelte Anführungszeichen
", das in JSON und in den meisten String-Literalen maskiert werden muss, sowie<,>und&, die in HTML und XML maskiert werden müssen. basE91 ist nicht URL-sicher. - Immer den ganzen String dekodieren. Da die Bits über Zeichengrenzen hinweg verlaufen, lässt sich ein aus der Mitte eines basE91-Strings herausgeschnittenes Stück nicht für sich allein dekodieren.
- Unterstützung. basE91 ist kein IETF-Standard. Der Autor veröffentlicht Referenzimplementierungen in C und anderen Sprachen, und für die meisten Plattformen gibt es Portierungen, etwa das Paket
base91für Python.
Spezifikation
| Alphabet | 91 druckbare ASCII-Zeichen |
|---|---|
| Ausgabegröße | Etwa 123 % |
| Auffüllung | Keine |
| Standard | basE91 (Joachim Henke) |
| Groß-/Kleinschreibung relevant | Ja |
Beispiele
| Eingabe (UTF-8) | Ausgabe |
|---|---|
Hello, World! | >OwJh>}AQ;r@@Y?F |
Base64.is | xD7gXm^?t#5 |
你好 | I_5k7aPE |
Häufig gestellte Fragen
Ist basE91 kleiner als Base64?
Ja. Base64 fügt immer 33 % hinzu, basE91 höchstens etwa 23 % und bei Daten mit vielen Nullbytes noch weniger. Bei einer 1-MB-Datei spart das rund 100 KB.
Welche Zeichen verwendet basE91?
A-Z und a-z, die Ziffern 0-9 und die Symbole !#$%&()*+,./:;<=>?@[]^_`{|}~". Leerzeichen, Apostroph, Bindestrich und Backslash werden nicht verwendet.Warum wird es basE91 geschrieben?
So schreibt sein Autor den Namen. basE91 und Base91 bezeichnen dieselbe Kodierung, und diese Seite folgt dem ursprünglichen Algorithmus.
Stören Leerzeichen beim Dekodieren?
Nein. Leerzeichen und Zeilenumbrüche gehören nicht zum Alphabet, daher ignoriert der Decoder auf dieser Seite sie. Sie können umbrochenen basE91-Text direkt einfügen.