Sprache: Deutsch

tools / base58

base58/

Text oder Hex in Base58 umwandeln und zurück, mit dem Bitcoin-Alphabet. Jedes führende 00-Byte wird zu einer führenden 1.

Eingabe

Base58

Häufige Fragen

Warum fehlen in Base58 die Zeichen 0, O, I und l, und was tun, wenn beim Dekodieren steht, ein Zeichen sei nicht im Alphabet?

Base58 lässt die Ziffer 0, das große O, das große I und das kleine l bewusst weg, weil sie sich beim Lesen oder Abschreiben von Hand leicht verwechseln lassen. Übrig bleiben 58 Zeichen: 1 bis 9, A bis Z ohne I und O sowie a bis z ohne l. Trifft das Dekodieren auf ein Zeichen außerhalb des Alphabets, nennt das Tool, um welches Zeichen es sich handelt und wo es steht. Prüfe, ob beim Kopieren Anführungszeichen, Satzzeichen oder unsichtbare Zeichen hineingeraten sind; Leerzeichen und Zeilenumbrüche werden automatisch ignoriert. Enthält die Zeichenkette tatsächlich 0, O, I oder l, ist es vermutlich gar kein Base58, sondern Base64, Hex oder eine andere Kodierung.

Beim Dekodieren von Base58 heißt es, das Ergebnis sei kein gültiger UTF-8-Text. Was tun?

Die dekodierten Bytes sind dann kein UTF-8-Text. Private Schlüssel, Hashes von öffentlichen Schlüsseln und Adressen sind von Haus aus Binärdaten. Stelle das Ausgabeformat auf Hex, um die Rohbytes zu sehen. Text wird immer als UTF-8 behandelt, daher lassen sich Bytes, die in GBK oder einer anderen Kodierung geschrieben wurden, hier nicht als Text anzeigen; nimm dafür ein Tool, das diese Kodierung unterstützt.

Was bedeutet die 1 am Anfang eines Base58-Ergebnisses, und warum wird eine 00 am Anfang von Hex zu 1?

Base58 behandelt die gesamte Bytefolge als eine große Ganzzahl und wechselt deren Basis. Führende 00-Bytes würden dabei verschwinden, weil sie zum Wert nichts beitragen. Deshalb wird per Konvention jedes führende 00-Byte als eine führende 1 geschrieben (das erste Zeichen des Alphabets). Zum Beispiel wird das Hex 0000010203 zu 11Ldp, und die beiden führenden Einsen stehen für die zwei 00-Bytes. Beim Dekodieren wird jede führende 1 wieder zu einem 00-Byte; eine Eingabe, die nur aus 00-Bytes besteht, ergibt nur eine Folge von Einsen.

Kann das Bitcoin-Adressen dekodieren? Und was ist mit der Base58Check-Prüfsumme?

Es dekodiert sie zu Bytes, prüft aber nichts. Bitcoin-Adressen verwenden Base58Check: Versionsbyte, Daten und eine 4 Byte lange Prüfsumme werden aneinandergehängt und dann mit Base58 kodiert. Dieses Tool kann nur einfaches Base58: Beim Dekodieren erhältst du alle Rohbytes, ohne dass die Prüfsumme geprüft oder entfernt wird, und beim Kodieren wird keine hinzugefügt. Zum Beispiel ergibt 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa beim Dekodieren (mit Hex-Ausgabe) 25 Bytes: ein Versionsbyte 00, ein 20 Byte langer Hash und am Ende 4 Byte Prüfsumme.

Was ist der Unterschied zwischen Base58 und Base64?

Base64 verwendet 64 Zeichen (darunter + und /, am Ende mit = als Padding) und wandelt je 3 Bytes auf einmal um; es ist schnell, und die Ausgabelänge ist vorhersehbar. Base58 lässt die leicht verwechselbaren Zeichen sowie +, / und = weg, sodass ein Doppelklick die ganze Zeichenkette markiert und das Abschreiben von Hand weniger fehleranfällig ist. Der Preis: Es teilt eine große Ganzzahl und wird bei längerer Eingabe langsamer. Deshalb kommt es vor allem bei kurzen Daten wie Adressen und Schlüsseln mit wenigen Dutzend Bytes zum Einsatz. Die beiden Ausgaben sind nicht austauschbar.

Warum weicht mein Ergebnis von einer anderen Website oder Bibliothek ab?

Prüfe drei Dinge. Alphabet: Dieses Tool verwendet das Bitcoin-Alphabet; das Alphabet von Flickr stellt die Kleinbuchstaben nach vorn, und das von Ripple hat noch eine andere Reihenfolge, die Ergebnisse unterscheiden sich also. Eingabe: Text wird genau wie eingegeben als UTF-8 kodiert, ein zusätzlicher Zeilenumbruch oder ein Leerzeichen am Ende ändert das Ergebnis. Eingabeformat: Willst du Hex-Bytes kodieren, wähle Hex, sonst wird 0a1b als Text aus vier Zeichen behandelt. Hex-Eingaben dürfen Leerzeichen, Doppelpunkte, Kommas oder 0x-Präfixe als Trennung enthalten und müssen eine gerade Anzahl von Ziffern haben.

Gibt es eine Längenbegrenzung für die Base58-Eingabe?

Ja. Beim Kodieren sind bis zu 32768 Bytes möglich, beim Dekodieren bis zu 45000 Zeichen; Längeres muss in Abschnitte aufgeteilt werden. Der Rechenaufwand bei Base58 wächst quadratisch mit der Länge, die Grenze verhindert, dass die Seite einfriert. Bei wenigen KB oder weniger erscheint das Ergebnis praktisch sofort.

Wird meine Eingabe hochgeladen?

Nein. Kodieren und Dekodieren laufen in deinem Browser, es wird nichts an einen Server gesendet.