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

Base58Check-Encoder und -Decoder

Fügen Sie ein Versionsbyte plus Nutzdaten als Hex ein und erhalten Sie die Base58Check-Zeichenkette mit ihrer 4-Byte-Prüfsumme. Kehren Sie die Richtung um, um eine Adresse oder einen WIF-Schlüssel zu dekodieren: Die Prüfsumme wird geprüft, und die Nutzdaten kommen als Hex zurück.

Kostenlos ohne Anmeldung, ohne Limits Lokal kein Upload Prüfsumme wird beim Dekodieren geprüft 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 und dekodieren Sie Base58Check

Zum Kodieren:

  1. Fügen Sie das Hex in Eingabe · Hex ein: zuerst das Versionsbyte, dann die Nutzdaten. Leerzeichen, Doppelpunkte und 0x-Präfixe werden akzeptiert.
  2. Lesen Sie das Ergebnis in Ausgabe · Base58Check. Das Tool berechnet die Prüfsumme und hängt sie vor dem Kodieren an.
  3. Lassen Sie das Alphabet für Bitcoin und die meisten Forks auf Bitcoin.

Zum Dekodieren klicken Sie im Richtungsschalter auf Base58Check → Hex und fügen die Adresse oder den Schlüssel ein. Der Decoder wandelt sie um, berechnet die Prüfsumme neu und gibt die Nutzdaten (weiterhin mit dem Versionsbyte am Anfang) nur zurück, wenn alle 4 Prüfsummenbytes übereinstimmen. Ein einziges vertipptes Zeichen ergibt „Prüfsumme stimmt nicht: Die Zeichenkette ist vertippt oder beschädigt.“

Was Base58Check zu Base58 hinzufügt

Reines Base58 hat keine Fehlererkennung: Ein Tippfehler ergibt eine andere, aber ebenso gültige Zeichenkette. Base58Check behebt das mit zwei Ergänzungen:

version (1 byte) | payload | first 4 bytes of SHA-256(SHA-256(version | payload))

Das Ganze wird dann Base58-kodiert, führende Nullbytes werden also zu 1. Das Versionsbyte bestimmt das Netzwerk und die Art der Daten, und weil es vorn in der Zahl steht, legt es auch das erste Zeichen des Ergebnisses fest.

Versionsbytes und Präfixe

Derselbe 20-Byte-Hash, 62e907b15cbf27d5425399ebf6f0fb50ebb88f18, mit verschiedenen Versionsbytes:

VersionBedeutungErstes ZeichenErgebnis
00Bitcoin-P2PKH-Adresse11A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
05Bitcoin-P2SH-Adresse33Ai1JZ8pdJb2ksieUV8FsxSNVJCpoPi8W6
6fTestnet-P2PKH-Adressem oder nmpXwg4jMtRhuSpVq4xS3HFHmCmWp9NyGKt
c4Testnet-P2SH-Adresse22N2GDNJ4rEm6NxfMC9ck8VuRdheQzXWaNZv

Die erste Zeile ist die Adresse, die die Belohnung des Bitcoin-Genesis-Blocks erhalten hat. Die anderen Zeilen veranschaulichen nur das Versionsbyte: Wer einen Public-Key-Hash in ein P2SH-Versionsbyte verpackt, erhält keine nutzbare P2SH-Adresse, denn P2SH hasht ein Skript.

Private WIF-Schlüssel

Das Wallet Import Format ist Base58Check mit dem Versionsbyte 80 und einem 32-Byte-Private-Key. Ein angehängtes Byte 01 kennzeichnet einen Schlüssel, dessen Public Key in komprimierter Form verwendet wird. Mit dem bekannten Beispielschlüssel aus dem Bitcoin-Wiki:

Hex-EingabeBase58Check
80 + 0C28FCA386C7A227600B2FE50B7CAE11EC86D3BF1FBE471BE89827E19D72AA1D5HueCGU8rMjxEXxiPuD5BDku4MkFqeZyd4dZ1jvhTVqvbTLvyTJ
derselbe + 01KwdMAjGmerYanjeui5SHS7JkmpZvVipYvB2LJGU1ZxJwYvP98617

Unkomprimierte WIF-Schlüssel beginnen mit 5, komprimierte mit K oder L. Dieser Beispielschlüssel ist öffentlich; verwenden Sie ihn nie für echtes Guthaben.

Base58Check in Python

Die Prüfsumme besteht aus zwei SHA-256-Aufrufen aus der Standardbibliothek. Mit einem kleinen Base58-Encoder:

import hashlib

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

def b58check(payload: bytes) -> str:
    checksum = hashlib.sha256(hashlib.sha256(payload).digest()).digest()[:4]
    return b58encode(payload + checksum)

b58check(bytes.fromhex("0062e907b15cbf27d5425399ebf6f0fb50ebb88f18"))
# '1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa'

Um eine Zeichenkette im Code zu prüfen, dekodieren Sie sie mit Base58, trennen die letzten 4 Bytes ab und vergleichen sie mit dem doppelten Hash des Rests. Mehr zum Umgang mit Bytes in Python finden Sie auf der Python-Seite.

Häufige Probleme

  • Prüfsumme stimmt nicht. Die Zeichenkette enthält einen Tippfehler, wurde abgeschnitten oder ist reines Base58 ohne Prüfsumme (Solana-Adressen und IPFS-Hashes sind reines Base58; nehmen Sie für sie den Base58-Decoder).
  • „Zu kurz für die 4-Byte-Prüfsumme“. Der dekodierte Wert hat weniger als 4 Bytes und kann daher kein Base58Check sein.
  • Unerwartetes Zeichen "0", "O", "I" oder "l". Gehört nicht zum Base58-Alphabet; prüfen Sie die Abschrift.
  • Falsches erstes Zeichen nach dem Kodieren. Prüfen Sie das Versionsbyte. Ohne Versionsbyte ergibt ein 20-Byte-Hash meist eine Zeichenkette, die nicht mit 1 beginnt.

Häufige Fragen

Wie wird die Base58Check-Prüfsumme berechnet?

Hashen Sie die Nutzdaten (einschließlich Versionsbyte) mit SHA-256, hashen Sie das Ergebnis noch einmal mit SHA-256 und nehmen Sie die ersten 4 Bytes. Diese 4 Bytes werden vor der Base58-Kodierung angehängt.

Heißt eine gültige Prüfsumme, dass ich bedenkenlos an die Adresse senden kann?

Sie heißt, dass die Zeichenkette nicht vertippt wurde: Ein zufälliger Tippfehler kommt mit einer Wahrscheinlichkeit von etwa 1 zu 4,3 Milliarden durch. Darüber, wer die Adresse kontrolliert oder ob sie zu dem Netzwerk gehört, das Sie annehmen, sagt sie nichts.

Kann Base58Check bc1-Adressen dekodieren?

Nein. Adressen, die mit bc1 beginnen, sind Bech32 oder Bech32m (SegWit und Taproot) und verwenden ein anderes Alphabet und eine andere Prüfsumme.

Sollte ich hier einen echten privaten Schlüssel einfügen?

Die Umwandlung läuft in Ihrem Browser, und die Seite blockiert alle Netzwerkanfragen außer dem Seitenaufrufzähler von Cloudflare, aber ein WIF-Schlüssel verfügt über Guthaben. Nehmen Sie für alles, was Wert hat, einen Testschlüssel oder einen Offline-Rechner.