Cara menggunakan
- Pilih Enkode untuk membuat string Base58Check, atau Dekode untuk memverifikasinya dan memulihkan byte-nya.
- Untuk mengenkode, setel masukan ke Hex lalu masukkan byte versi diikuti payload, misalnya 00 dan HASH160 sepanjang 20 byte.
- Biarkan opsi Checksum Base58Check aktif. Checksum ditambahkan saat mengenkode dan diverifikasi saat mendekode.
- Untuk mendekode, tempel string-nya dan setel keluaran ke Hex. Anda akan mendapatkan byte versi dan payload tanpa checksum.
Cara kerja Base58Check
- Mulailah dengan byte versi yang menyatakan jenis data, diikuti payload, misalnya hash kunci publik sepanjang 20 byte.
- Hash byte tersebut dengan SHA-256, hash hasilnya sekali lagi dengan SHA-256, lalu ambil 4 byte pertama sebagai checksum.
- Tambahkan checksum di bagian akhir dan enkode semuanya dengan Base58. Setiap byte
0x00di awal menjadi1.
Alat ini menghitung checksum tepat atas byte yang Anda masukkan. Alat ini tidak menambahkan byte versi untuk Anda, jadi sertakan byte tersebut di awal masukan. Saat mendekode, checksum dihitung ulang atas semua byte kecuali 4 byte terakhir. Jika cocok, Anda mendapatkan byte versi dan payload; jika tidak, muncul galat checksum. Salah ketik acak hanya lolos sekitar satu kali dalam empat miliar percobaan.
Byte versi yang umum
| Byte versi | Data | String hasil enkode diawali |
|---|---|---|
0x00 | Alamat Bitcoin P2PKH (HASH160 20 byte) | 1 |
0x05 | Alamat Bitcoin P2SH (hash skrip 20 byte) | 3 |
0x6F | Alamat P2PKH testnet Bitcoin | m atau n |
0x80 | Kunci privat WIF (32 byte, ditambah 0x01 untuk kunci terkompresi) | 5, atau K / L jika terkompresi |
Alamat SegWit dan Taproot yang diawali bc1 memakai Bech32, bukan Base58Check, dan tidak dapat didekode di sini. Alamat XRP Ledger memakai checksum yang sama dengan alfabet Ripple: pilih Ripple pada opsi Alfabet.
Contoh: dari HASH160 ke alamat
Alamat terkenal yang dikaitkan dengan blok genesis Bitcoin terdiri dari byte versi 00 diikuti HASH160 sepanjang 20 byte. Jika dimasukkan sebagai masukan Hex dengan Checksum Base58Check aktif, hasilnya adalah alamat yang sudah dikenal luas:
Masukan (Hex) 00 62e907b15cbf27d5425399ebf6f0fb50ebb88f18
Keluaran 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
Dalam kode, paket Python base58 menyediakan b58encode_check() dan b58decode_check(), sedangkan paket npm bs58check menawarkan encode() dan decode().
Spesifikasi
| Alfabet | 1-9 A-Z a-z tanpa 0 O I l |
|---|---|
| Ukuran keluaran | Sekitar 137% ditambah checksum 4 byte |
| Padding | Tidak ada |
| Standar | Bitcoin Base58Check |
| Peka huruf besar-kecil | Ya |
Contoh
| Masukan (UTF-8) | Keluaran |
|---|---|
Hello, World! | gTazoqFvnegwaKM8v1B33sR |
Base64.is | 6XgW4KVJr8DBmZEAeJ |
你好 | DrMzxHL43oWHbW |
Pertanyaan yang sering diajukan
Mengapa dekode gagal dengan galat checksum?
Apakah alat ini menambahkan byte versi untuk saya?
00 untuk alamat Bitcoin.Bisakah saya mendekode kunci privat WIF?
80, kunci 32 byte, dan untuk kunci terkompresi, 01 di bagian akhir. Dekode berjalan secara lokal di browser Anda, tetapi tetap perlakukan kunci privat asli dengan hati-hati.Bisakah saya mendekode alamat bc1?
Tidak. Alamat Native SegWit dan Taproot memakai Bech32 atau Bech32m, pengodean lain dengan checksum tersendiri. Di Bitcoin, Base58Check hanya dipakai untuk alamat lama yang diawali 1 atau 3 (m, n, atau 2 di testnet).