Konverter Hex ke Base58

Tempel byte heksadesimal dan dapatkan string Base58 yang dipakai Bitcoin, Solana, dan IPFS. Setiap byte 00 di awal menjadi angka 1 di awal, dan semua byte lainnya dipertahankan persis.

Berjalan sepenuhnya di browser Anda. Tidak ada yang diunggah.

Cara menggunakan

  1. Tempel byte hex ke kolom masukan. Spasi, titik dua, dan awalan 0x diterima.
  2. Baca hasil Base58 di keluaran.
  3. 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 1220 di depan digest 64 digit, dan Anda akan mendapatkan string 46 karakter yang diawali Qm. 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?
Tambahkan byte versi 00 di depannya lalu enkode dengan Base58Check, bukan Base58 biasa. Halaman Base58Check melakukannya saat Anda memasukkan byte sebagai hex.
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.

Alfabet Base58 mana yang dipakai halaman ini?
Alfabet Bitcoin, yang juga dipakai oleh Solana, IPFS, dan sebagian besar proyek lain. Untuk alfabet Flickr atau Ripple, buka halaman Base58, pilih alfabetnya di sana, dan masukkan data Anda sebagai byte hex.