Cara menggunakan
- Tempel string Base58 ke kolom masukan. Spasi dan jeda baris diabaikan.
- Baca byte hasil dekode dalam heksadesimal di keluaran.
- Salin hex-nya, atau tekan Tukar masukan dan keluaran untuk mengubah hex kembali menjadi Base58.
Cara Base58 berubah menjadi hex
Base58 membaca seluruh string sebagai satu bilangan besar yang ditulis dengan alfabet Bitcoin 58 karakter, yang tidak memakai 0, O, I, dan l. Konversi ke hex menulis bilangan yang sama dalam basis 16, dua digit hex per byte, sehingga tidak ada yang ditambahkan atau hilang.
Byte nol di awal data tidak memiliki nilai numerik, jadi Base58 mencatat masing-masing sebagai 1 di awal, yaitu karakter pertama alfabetnya. Decoder mengubah setiap 1 di awal kembali menjadi byte 00. Misalnya, 115Q didekode menjadi 0000ff, dan alamat System Program Solana, yaitu tiga puluh dua karakter 1 berturut-turut, didekode menjadi 32 byte nol. Konversi berjalan secara lokal di browser Anda.
Contoh Bitcoin, Solana, dan IPFS
Spasi ditambahkan pada hex di bawah ini untuk memperlihatkan bagian-bagiannya:
Alamat Bitcoin (P2PKH, blok genesis)
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
00 62e907b15cbf27d5425399ebf6f0fb50ebb88f18 c29b7d93
versi | hash160 (20 byte) | checksum (4 byte)
Kunci publik Solana (program SPL Token)
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
06ddf6e1d765a193d9cbe146ceeb79ac1cb485ed5f5b37913a8cf5857eff00a9
32 byte, tanpa byte versi, tanpa checksum
IPFS CIDv0
QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG
12 20 9d6c2be50f706953479ab9df2ce3edca90b68053c00b3004b7f0accbe1e8eedf
sha2-256 | panjang 32 | digest
Alamat Bitcoin lama (legacy) diawali 1 karena byte versinya 00. Alamat P2SH diawali 3 dan didekode menjadi versi 05.
Checksum Base58Check tetap ada di dalam byte
Alamat Bitcoin dan kunci privat WIF memakai Base58Check: empat byte checksum, yang diambil dari SHA-256 ganda atas payload, ditambahkan sebelum pengodean. Halaman ini memakai Base58 biasa, sehingga checksum didekode seperti data lainnya dan muncul sebagai 8 digit hex terakhir. Hash160 dari alamat lama adalah 40 digit hex di antara 00 di awal dan checksum.
Untuk memastikan alamat tidak rusak dan mendapatkan payload tanpa checksum, dekode alamat tersebut di halaman Base58Check. Kunci Solana dan hash IPFS tidak membawa checksum, jadi Base58 biasa adalah pilihan yang tepat untuk keduanya.
Base58 ke hex dalam kode
# Python (pip install base58)
import base58
base58.b58decode('115Q').hex() # '0000ff'
// JavaScript (instal dengan npm install bs58)
import bs58 from 'bs58';
Buffer.from(bs58.decode('115Q')).toString('hex'); // '0000ff'
Pertanyaan yang sering diajukan
Mengapa alamat Bitcoin didekode menjadi 25 byte, bukan 20?
Alamat lama berisi versi 1 byte, hash160 20 byte dari kunci publik, dan checksum 4 byte. Base58 biasa mengembalikan ketiganya, sehingga Anda mendapatkan 50 digit hex. Hash160 adalah semua byte di antara byte pertama dan empat byte terakhir.
Mengapa setiap angka 1 di awal menjadi 00?
Dalam Base58, karakter 1 melambangkan nilai nol. Byte nol di awal akan hilang jika data diperlakukan sebagai bilangan biasa, jadi masing-masing ditulis sebagai 1 dan didekode kembali menjadi byte 00.
Mengapa muncul kesalahan karakter tidak valid?
Berapa panjang kunci publik Solana?
Tepat 32 byte, atau 64 digit hex. Dalam Base58, panjangnya biasanya 43 atau 44 karakter. Kunci yang diawali byte nol bisa lebih pendek, seperti yang terlihat pada alamat System Program.