Bahasa: Bahasa Indonesia

tools / base58

base58/

Konversi teks atau hex ke Base58 dan sebaliknya dengan alfabet Bitcoin. Setiap byte 00 di awal menjadi angka 1 di awal.

Teks asli

Base58

Pertanyaan umum

Mengapa Base58 tidak memakai 0, O, I, dan l, dan bagaimana jika dekode menampilkan karakter yang tidak ada di alfabet?

Base58 sengaja membuang angka 0, huruf besar O, huruf besar I, dan huruf kecil l karena karakter-karakter itu mudah tertukar saat dibaca atau disalin tangan. Sisa 58 karakternya adalah 1 sampai 9, A sampai Z tanpa I dan O, serta a sampai z tanpa l. Jika dekode menemukan karakter di luar alfabet, alat ini menunjukkan karakter apa itu dan di posisi mana. Periksa apakah tanda kutip, tanda baca, atau karakter tak terlihat ikut masuk saat menyalin; spasi dan baris baru diabaikan otomatis. Jika string tersebut memang berisi 0, O, I, atau l, kemungkinan besar itu bukan Base58, melainkan Base64, hex, atau encoding lain.

Dekode Base58 menampilkan pesan bahwa hasilnya bukan teks UTF-8 yang valid. Apa yang harus dilakukan?

Artinya byte hasil dekode bukan teks UTF-8. Kunci privat, hash kunci publik, dan alamat memang data biner sejak awal. Ubah format output ke hex untuk melihat byte aslinya. Teks selalu diproses sebagai UTF-8, sehingga byte yang ditulis dengan GBK atau encoding lain tidak bisa ditampilkan sebagai teks di sini; gunakan alat yang mendukung encoding tersebut.

Apa arti angka 1 di awal hasil Base58, dan mengapa 00 di awal hex menjadi 1?

Base58 memperlakukan seluruh deretan byte sebagai satu bilangan bulat besar lalu mengubah basisnya, sehingga byte 00 di awal akan hilang karena tidak menambah nilai apa pun. Menurut konvensi, setiap byte 00 di awal ditulis sebagai satu angka 1 di awal (karakter pertama alfabet). Misalnya, hex 0000010203 menjadi 11Ldp, dan dua angka 1 di awal mewakili dua byte 00. Saat dekode, setiap angka 1 di awal dikembalikan menjadi byte 00; input yang seluruhnya terdiri dari byte 00 hanya menghasilkan deretan angka 1.

Apakah bisa mendekode alamat Bitcoin? Bagaimana dengan checksum Base58Check?

Bisa didekode menjadi byte, tetapi tidak ada yang diverifikasi. Alamat Bitcoin memakai Base58Check: byte versi, data, dan checksum 4 byte digabung lalu dienkode dengan Base58. Alat ini hanya melakukan Base58 biasa, jadi dekode memberi Anda seluruh byte mentah tanpa memeriksa atau membuang checksum, dan enkode juga tidak menambahkannya. Contohnya, 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa didekode (dengan output hex) menjadi 25 byte: versi 1 byte 00, hash 20 byte, dan checksum 4 byte di akhir.

Apa bedanya Base58 dan Base64?

Base64 memakai 64 karakter (termasuk + dan /, dengan padding = di akhir) dan mengonversi 3 byte sekaligus, sehingga cepat dan panjang outputnya mudah diprediksi. Base58 membuang karakter yang mirip serta +, /, dan =, sehingga klik dua kali memilih seluruh string dan salinan tangan lebih kecil kemungkinan salah. Konsekuensinya, Base58 harus membagi satu bilangan bulat besar, jadi semakin panjang input semakin lambat. Karena itu Base58 kebanyakan dipakai untuk data pendek seperti alamat dan kunci, sepanjang puluhan byte. Output keduanya tidak bisa saling menggantikan.

Mengapa hasil enkode berbeda dengan situs atau library lain?

Periksa tiga hal. Alfabet: alat ini memakai alfabet Bitcoin; alfabet Flickr menaruh huruf kecil lebih dulu dan Ripple memakai urutan lain lagi, sehingga hasilnya berbeda. Input: teks dienkode sebagai UTF-8 apa adanya, jadi satu baris baru atau spasi tambahan di akhir mengubah hasilnya. Format input: jika Anda mengenkode byte hex, pilih hex; kalau tidak, 0a1b akan diperlakukan sebagai teks empat karakter. Input hex boleh memakai spasi, titik dua, koma, atau awalan 0x sebagai pemisah, dan jumlah digitnya harus genap.

Apakah ada batas panjang untuk input Base58?

Ada. Enkode menerima hingga 32768 byte dan dekode hingga 45000 karakter; yang lebih panjang diminta untuk dipecah. Jumlah komputasi Base58 tumbuh secara kuadrat terhadap panjang input, sehingga batas ini mencegah halaman macet. Beberapa KB atau kurang hampir seketika.

Apakah isi yang saya masukkan diunggah?

Tidak. Enkode dan dekode berjalan di browser Anda dan tidak ada yang dikirim ke server.