Datei hochladen
  1. base64hub
  2. Weitere Basen
  3. Base58

Base58-Encoder und -Decoder online

Tippen Sie Text ein und erhalten Sie seine Base58-Kodierung mit dem Bitcoin-Alphabet, das Bitcoin-Adressen, IPFS und Solana verwenden. Die Alphabete von Flickr und Ripple sind einen Klick entfernt, und führende Nullbytes überstehen den Hin- und Rückweg.

Kostenlos ohne Anmeldung, ohne Limits Lokal kein Upload 3 Alphabete Bitcoin, Flickr, Ripple Aktualisiert 27.10.2026
Eingabe 0Bytes 0 BAusgabe 0

Wird in Ihrem Browser verarbeitet. Diese Seite kann Ihre Daten nirgendwohin senden – woher wir das wissen

So kodieren Sie in Base58

  1. Tippen oder fügen Sie Text in Eingabe · Text ein. Die Base58-Zeichenkette erscheint schon während der Eingabe in Ausgabe · Base58.
  2. Wählen Sie das Alphabet unter der Ausgabe: Bitcoin (Standard, auch von IPFS und Solana verwendet), Flickr oder Ripple.
  3. Um rohe Bytes statt Text zu kodieren, stellen Sie Von auf Hex oder Base64 und fügen die Bytes in dieser Form ein. Ein Public Key oder Hash besteht fast immer aus Bytes, nicht aus Text.
  4. Klicken Sie im Richtungsschalter auf Base58 → Text, um zu dekodieren, oder öffnen Sie den Base58-Decoder, der die Bytes als Hex zeigt.

So funktioniert die Base58-Kodierung

Base58 zerlegt die Eingabe nicht wie Base64 in feste Bitgruppen. Es liest alle Bytes als eine große Big-Endian-Zahl, schreibt diese Zahl zur Basis 58 und fügt dann für jedes führende Nullbyte eine 1 hinzu. Deshalb kann ein einziges geändertes Byte die ganze Zeichenkette verändern, und deshalb hängt die Länge vom Wert ab und nicht nur von der Byteanzahl.

Der Aufwand, die Daten als eine Zahl zu behandeln, wächst mit der Größe schnell, daher begrenzt dieses Tool Base58-Eingaben auf 64 KB. Das ist weit mehr, als ein Schlüssel, Hash oder eine Adresse braucht.

Die drei Base58-Alphabete

Alle drei verwenden dieselben 58 Zeichen (Ziffern und Buchstaben ohne 0, O, I, l), nur in anderer Reihenfolge:

AlphabetBeginnt mitHello0x00 0x00 0x01
Bitcoin123456789ABC…9Ajdvzr112
Flickr123456789abc…9aJCVZR112
Ripplerpshnaf39wBU…9wjdvzirrp

Flickr vertauscht Groß- und Kleinbuchstaben; Flickr nutzte das für kurze Foto-URLs. Das Ripple-Alphabet beginnt mit r, daher beginnen Adressen im XRP Ledger, die ein Versionsbyte null haben, mit r, so wie Bitcoin-Adressen mit 1. Dekodieren mit dem falschen Alphabet klappt meist ohne Fehlermeldung und ergibt andere Bytes, prüfen Sie also zuerst das Alphabet, wenn ein Wert nicht passt.

Führende Nullen und das Präfix 1

Weil Base58 Daten als Zahl behandelt, würden Nullbytes am Anfang verschwinden. Das Format bewahrt sie, indem es pro Nullbyte eine 1 schreibt:

Bytes (Hex)Base58
001
00 0011
00 0112
ff5Q
31 × 00, dann ff11111111111111111111111111111115Q
32 × 0011111111111111111111111111111111

Die letzte Zeile ist eine echte Adresse: Zweiunddreißig 1 sind das Solana System Program, dessen Public Key aus 32 Nullbytes besteht. Bei führenden Nullen geht selbst geschriebener Base58-Code am häufigsten schief, und ein Encoder, der sie verwirft, erzeugt Zeichenketten, die zu weniger Bytes dekodiert werden.

Wo Base58 verwendet wird

  • Bitcoin-Adressen und WIF-Schlüssel. Legacy-Adressen (1…, 3…) und private WIF-Schlüssel (5…, K…, L…) sind Base58Check: Base58 mit einem Versionsbyte und einer Prüfsumme. Bech32-Adressen (bc1…) sind eine andere Kodierung.
  • IPFS CIDv0. Die Kennungen Qm… sind reines Base58 eines 34-Byte-Multihash: 12 (SHA-256), 20 (32 Bytes lang) und der Digest. Der Header 12 20 sorgt dafür, dass jede CIDv0 mit Qm beginnt.
  • Solana. Adressen und Public Keys sind Base58 von 32 Bytes (32 bis 44 Zeichen); Transaktionssignaturen sind Base58 von 64 Bytes (bis zu 88 Zeichen).

Base58 in Python

Python hat kein Base58 in der Standardbibliothek. Der Algorithmus ist kurz genug, um ihn auszuschreiben, und diese Version behandelt führende Nullen:

ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"

def b58encode(data: bytes) -> str:
    n = int.from_bytes(data, "big")
    out = ""
    while n:
        n, r = divmod(n, 58)
        out = ALPHABET[r] + out
    zeros = len(data) - len(data.lstrip(b"\0"))
    return "1" * zeros + out

b58encode(b"Hello")           # '9Ajdvzr'
b58encode(bytes(32))          # '11111111111111111111111111111111'

Für Produktionscode deckt ein gepflegtes Paket wie base58 auf PyPI auch Base58Check ab. Allgemeine Muster zum Kodieren in Python finden Sie auf der Python-Seite.

Häufige Fragen

Welche Zeichen lässt Base58 weg?

Base58 ist Base62 ohne vier leicht verwechselbare Zeichen: 0 (Null), O (großes O), I (großes i) und l (kleines L). Außerdem fehlen +, / und =, eine Base58-Zeichenkette lässt sich also per Doppelklick als ein Wort markieren und ohne Maskierung in einer URL verwenden.

Warum beginnt die Base58-Ausgabe mit 1?

Jede 1 steht für ein führendes Nullbyte der Eingabe. Eine reine Zahl würde diese Nullen verlieren, daher schreibt Base58 sie ausdrücklich aus. Bitcoin-Adressen beginnen mit 1, weil ihr Versionsbyte 0x00 ist.

Ist Base58 dasselbe wie Base58Check?

Nein. Base58Check ist Base58, angewendet auf Nutzdaten mit angehängter 4-Byte-Prüfsumme aus doppeltem SHA-256. Bitcoin-Adressen und private WIF-Schlüssel verwenden es; Solana-Adressen und IPFS CIDv0 verwenden reines Base58. Für die Form mit Prüfsumme nehmen Sie das Base58Check-Tool.

Wie viel länger als die Eingabe ist Base58?

Bei Zufallsdaten etwa 37 % (log 256 / log 58 ≈ 1,366), etwas mehr als die 33 % von Base64. Die genaue Länge hängt vom Wert ab: 32 Zufallsbytes ergeben 43 oder 44 Zeichen, 32 Nullbytes dagegen 32 Einsen.