Encoder dan Decoder Base58
Masukan
Base58 adalah pengodean biner ke teks yang dirancang untuk menghindari beberapa karakter yang mudah tertukar. Alfabet Bitcoin tidak memakai 0 O I l maupun + /; sistem lain menyusun 58 simbol yang sama dalam urutan berbeda. Contoh yang umum adalah alamat Bitcoin lama dengan Base58Check dan string IPFS CIDv0. Alat khusus browser ini mengonversi teks UTF-8 atau byte heksadesimal yang tepat dengan alfabet Bitcoin, Ripple, atau Flickr, serta menolak karakter di luar alfabet yang dipilih.
Cara mengodekan dan mendekode Base58
-
1
Masukkan byte atau string Base58
Arah pengodean menerima heksadesimal atau teks mentah; arah pendekodean menerima Base58.
-
2
Pilih alfabet jika perlu
Default adalah Base58 Bitcoin; varian Ripple dan Flickr tersedia untuk kompatibilitas.
-
3
Jalankan konversi
Base58 tidak memecah menjadi grup 5 atau 6 bit yang rapi; ia diperlakukan sebagai satu bilangan bulat big-endian, dibagi 58 berulang kali.
-
4
Salin hasil
String yang dikodekan mempertahankan byte nol di awal sebagai karakter `1` di awal (karakter penanda nol dalam alfabet Bitcoin).
Alfabet Bitcoin Base58
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Perhatikan yang hilang: 0, O, I, l. Karakter pertama dalam alfabet adalah 1, yang merepresentasikan bilangan bulat 0.
Cara kerjanya sebenarnya
Tidak seperti Base64 yang memecah bit dalam grup tetap, Base58 memperlakukan seluruh string byte sebagai satu bilangan bulat big-endian N dan menyatakannya dalam basis 58:
result = []
while N > 0:
result.prepend(alphabet[N mod 58])
N = N / 58
for each leading zero byte in input:
result.prepend(alphabet[0]) # i.e. '1'
Karena itu pengodean Base58 tidak mudah dialirkan (streaming) - Anda membutuhkan seluruh angka sebelum bisa mengeluarkan karakter apa pun.
Base58 vs Base58Check
Payload Base58Check yang umum untuk alamat P2PKH lama berukuran 25 byte: 1 byte versi, 20 byte hash, dan 4 byte checksum. Checksum adalah 4 byte pertama dari digest SHA-256 ganda atas versi dan hash. Pengodean seluruh payload itu sebagai Base58 menghasilkan string alamat yang dikenal.
Alat ini hanya mengonversi Base58 biasa. Gunakan validator Base58Check khusus saat Anda perlu memeriksa versi dan checksum alamat.
Varian alfabet
| Varian | Digunakan di | Perbedaan vs Bitcoin |
|---|---|---|
| Bitcoin | Alamat BTC, IPFS CIDv0 | Acuan dasar |
| Ripple | Alamat XRP | Posisi ditukar |
| Flickr | URL foto pendek | Huruf kecil sebelum huruf besar |
Mengapa tidak memakai Base64 saja?
Base64 memakai 4 karakter terkode untuk setiap 3 byte masukan sebelum padding, sehingga pertambahan panjangnya tetap dan efisien. Base58 memiliki tambahan panjang yang sedikit bervariasi tetapi menghindari beberapa karakter ambigu, sehingga membantu ketika orang menyalin pengidentifikasi dengan tangan atau membacakannya.
Pertanyaan yang Sering Diajukan
Tidak selalu. Base58 lebih baik ketika manusia menangani string; Base64 lebih baik ketika mesin memindahkannya. Base64 mengodekan 6 bit per karakter dibandingkan sekitar 5,86 milik Base58, jadi Base64 sedikit lebih ringkas.
Base58 mengodekan bilangan bulat besar, sehingga panjangnya bervariasi satu atau dua karakter tergantung pada bit orde tinggi. Alamat P2PKH umumnya 34 karakter, tetapi 33 mungkin terjadi.
Alat ini dapat mendekode string menjadi byte mentah; pilih keluaran heksadesimal agar byte apa pun tetap terlihat. Alat ini tidak memeriksa versi atau checksum, sehingga hasil decode bukan bukti bahwa alamat valid. Gunakan validator Base58Check untuk pemeriksaan tersebut.
Ya. Setiap byte nol di awal masukan menjadi karakter 1 pada keluaran, begitulah cara kerja alamat Bitcoin yang dimulai dengan 1.
Alat Terkait
Identifikasi Enkripsi
Tempel teks rahasia atau hasil hash-nya; identifikator tersebut akan menunjukkan algoritma atau format enkoding yang kemungkinan digunakan, seperti MD5, SHA, bcrypt, AES, RSA, Base64, dan lainnya.
Konverter ETH ke USD
Konversi Ethereum (ETH) ke dolar AS dengan kurs ETH/USD langsung atau kurs yang Anda masukkan sendiri. Lihat nilai dolar dari jumlah ETH berapa pun.
Kalkulator Hash File
Hitung hash MD5, SHA-1, SHA-256, dan SHA-512 dari teks atau isi file yang Anda tempel untuk memverifikasi unduhan dan integritas file.
Generator Hash
Buat hash MD5, SHA-1, SHA-256, SHA-384, SHA-512, dan CRC32 dari teks, dengan digest siap salin untuk checksum dan perbandingan.
Pengidentifikasi Cipher
Tempel ciphertext dan pengidentifikasi menyarankan skema encoding/cipher yang paling mungkin: Base64, hex, biner, Morse, Caesar atau substitusi, JWT, dan hash umum.
HMAC Generator
Hasilkan tanda tangan HMAC (SHA-256, SHA-384, SHA-512, SHA-1, MD5) dari pesan dan kunci rahasia untuk autentikasi API dan webhook.
Alat ini tersedia dalam bahasa lain
- Base58 encoder en decoder [NL]
- Encodeur et décodeur Base58 [FR]
- Codificador e Decodificador Base58 [PT]
- Base58 인코더 및 디코더 [KO]
- Base58-Encoder/Decoder [DE]
- Codificador y Decodificador Base58 [ES]
- ตัวเข้ารหัสและถอดรหัส Base58 [TH]
- Base58エンコーダー・デコーダー [JA]
- Base58-kodare och avkodare [SV]
- Bộ mã hóa và giải mã Base58 [VI]
- مشفر ومفكك Base58 [AR]
- Koder i dekoder Base58 [PL]
- Base58 Encoder and Decoder [EN]
- Codificatore e Decodificatore Base58 [IT]
- Кодировщик и декодировщик Base58 [RU]
- Base58 Kodlayıcı ve Çözücü [TR]
- Base58 编码器和解码器 [ZH]