Cara menggunakan
- Tempel byte hex ke kolom masukan. Spasi, titik dua, dan awalan 0x diterima.
- Baca hasil Base58 di keluaran.
- Salin hasilnya, atau tekan Tukar masukan dan keluaran untuk mendekode Base58 kembali menjadi hex.
Cara hex berubah menjadi Base58
Digit hex terlebih dahulu diubah menjadi byte, dua digit per byte, sehingga masukan harus berisi jumlah digit genap. Byte-byte tersebut kemudian dibaca sebagai satu bilangan big-endian dan ditulis ulang dalam basis 58 dengan alfabet Bitcoin. Setiap byte 00 di awal ditulis sebagai 1, itulah sebabnya 0000ff menjadi 115Q, sedangkan ff saja menjadi 5Q.
Base58 memerlukan sekitar 1,37 karakter per byte, sehingga 64 digit hex (32 byte) menyusut menjadi 43 atau 44 karakter. Alfabetnya tidak memuat 0, O, I, l, +, atau /, sehingga hasilnya mudah dibacakan, dapat dipilih dengan klik ganda, dan muat di URL. Semuanya dihitung di browser Anda.
Membuat pengenal Solana dan IPFS
- Solana: alamat adalah kunci publik Ed25519 32 byte dalam Base58, tanpa awalan dan tanpa checksum. Tempel kunci hex 64 digit untuk mendapatkan alamatnya.
- IPFS CIDv0: CIDv0 adalah multihash sha2-256 dalam Base58. Tambahkan
1220di depan digest 64 digit, dan Anda akan mendapatkan string 46 karakter yang diawaliQm. Digest tersebut harus yang dihitung IPFS untuk blok terenkode, yang tidak sama dengan SHA-256 dari file aslinya.
1220 9d6c2be50f706953479ab9df2ce3edca90b68053c00b3004b7f0accbe1e8eedf
QmYwAPJzv5CZsnA625s3Xf2nemtYgPpHdWEz79ojWnPbdG
Alamat Bitcoin memerlukan checksum
Hash160 saja bukanlah alamat. Alamat Bitcoin lama (legacy) adalah Base58Check dari byte versi 00 yang diikuti hash160 20 byte; Base58Check menambahkan checksum SHA-256 ganda 4 byte sebelum pengodean. Mengenkode 00 dan hash160 dengan Base58 biasa menghasilkan string yang lebih pendek tanpa checksum, dan dompet akan menolaknya.
Gunakan halaman Base58Check sebagai gantinya: pilih Hex pada Masukan sebagai, masukkan 00 diikuti hash160, dan checksum akan ditambahkan secara otomatis. Jika hex Anda sudah diakhiri checksum yang benar, halaman ini menghasilkan alamat yang sama.
0062e907b15cbf27d5425399ebf6f0fb50ebb88f18 (Base58Check)
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
Hex ke Base58 dalam kode
# Python (pip install base58)
import base58
base58.b58encode(bytes.fromhex('0000ff')) # b'115Q'
// JavaScript (instal dengan npm install bs58)
import bs58 from 'bs58';
bs58.encode(Buffer.from('0000ff', 'hex')); // '115Q'
Pertanyaan yang sering diajukan
Bagaimana cara mengubah hash160 menjadi alamat Bitcoin?
Mengapa hasilnya diawali beberapa karakter 1?
Hex Anda diawali byte 00 dengan jumlah yang sama. Base58 mempertahankannya sebagai angka 1 di awal agar byte tersebut dipulihkan saat string didekode.
Mengapa masukan hex saya ditolak?
Hex memerlukan jumlah digit genap dan hanya karakter 0-9 serta a-f, dalam huruf besar maupun kecil. Spasi, titik dua, dan awalan 0x dihapus secara otomatis; selain itu, misalnya huruf g yang terselip atau digit yang kurang, dianggap kesalahan.