Encoder dan Decoder Base62

Ubah teks, byte hex, atau file menjadi Base62 dan sebaliknya. Keluarannya hanya berisi angka dan huruf, sehingga aman dipakai di URL, nama file, dan pengenal tanpa escape.

Berjalan sepenuhnya di browser Anda. Tidak ada yang diunggah.

Cara menggunakan

  1. Pilih Enkode untuk mengubah teks menjadi Base62, atau Dekode untuk mengubah Base62 kembali menjadi teks.
  2. Pilih urutan alfabet yang sesuai dengan sistem Anda: 0-9 A-Z a-z (default) atau 0-9 a-z A-Z.
  3. Ketik atau tempel masukan Anda, atau klik Buka file untuk file kecil (hingga sekitar 20 KB).
  4. Salin hasilnya atau unduh sebagai file.

Apa itu Base62?

Base62 memakai sepuluh angka, 26 huruf besar, dan 26 huruf kecil. Ini adalah alfabet terbesar yang hanya terdiri dari huruf dan angka, sehingga hasilnya tidak perlu di-escape di URL, nama file, kunci basis data, atau pengenal dalam kode. Setiap karakter membawa sekitar 5,95 bit, sehingga ukuran keluarannya sekitar 1,34 kali ukuran masukan, hampir sepadat Base64 tetapi tanpa +, /, =, -, atau _.

Karena 62 bukan pangkat dua, alat ini memperlakukan seluruh masukan sebagai satu bilangan besar dan mengubahnya ke basis 62, seperti Base58 dan Base36. Setiap byte nol di awal ditulis sebagai 0 di depan agar tetap utuh saat dienkode lalu didekode kembali. Masukan dibatasi sekitar 20 KB karena perhitungannya melambat untuk data besar.

Tidak ada satu standar Base62

Tidak seperti Base64, Base62 tidak memiliki RFC, dan implementasinya berbeda-beda sehingga keluarannya tidak saling kompatibel:

  • Urutan alfabet. Alat ini menyediakan 0-9A-Za-z (default) dan 0-9a-zA-Z. Beberapa pustaka lain meletakkan huruf sebelum angka.
  • Nol di awal. Sebagian implementasi menyimpan satu 0 untuk setiap byte nol di awal, seperti alat ini, sebagian lain membuangnya, dan format dengan panjang tetap mengisi hasilnya hingga lebar tertentu.
  • Apa yang dienkode. Banyak fungsi Base62 mengenkode bilangan bulat, seperti ID basis data, bukan deretan byte. Ada pula yang membagi data menjadi blok berukuran tetap.

Jika string dari sistem lain menghasilkan teks kacau saat didekode di sini, coba opsi alfabet yang lain. Jika masih gagal, sistem tersebut kemungkinan memakai metode yang berbeda.

Penggunaan Base62

Layanan pemendek URL mengubah ID yang bertambah otomatis menjadi kode pendek: tujuh karakter Base62 mencakup lebih dari 3,5 triliun nilai. ID yang dapat diurutkan seperti KSUID memakai bentuk Base62 dengan panjang tetap 27 karakter, dan banyak layanan memakai Base62 untuk kunci API dan token karena klik ganda langsung memilih seluruh string dan string tersebut dapat ditempel di mana saja. Untuk mengonversi satu bilangan bulat, gunakan konverter basis bilangan, atau beberapa baris kode:

// JavaScript: bilangan bulat (BigInt) ke Base62
const A = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';   // alfabet 0-9 A-Z a-z
function toBase62(n) {
  let s = '';
  do { s = A[Number(n % 62n)] + s; n /= 62n; } while (n > 0n);   // bagi berulang kali dengan 62
  return s;
}
toBase62(123456789n);   // '8M0kX'

Spesifikasi

Alfabet0-9 A-Z a-z
Ukuran keluaranSekitar 134% (konversi bilangan besar)
PaddingTidak ada
StandarTidak ada standar resmi
Peka huruf besar-kecilYa

Contoh

Masukan (UTF-8)Keluaran
Hello, World!1wJfrzvdbtXUOlUjUf
Base64.isNWxjrFq4r3rv
你好19PqtKE1t

Pertanyaan yang sering diajukan

Apakah Base62 aman untuk URL?
Ya. Base62 hanya memakai A-Z, a-z, dan 0-9, yang tidak pernah perlu di-escape di URL. Base64URL juga aman untuk URL, tetapi memuat karakter - dan _.
Mengapa string Base62 saya didekode menjadi teks yang salah?

Implementasi Base62 berbeda dalam urutan alfabet dan metodenya. Coba beralih antara alfabet 0-9A-Za-z dan 0-9a-zA-Z. Jika keduanya tidak berhasil, string tersebut kemungkinan dibuat dari bilangan bulat atau dengan algoritma lain.

Apakah Base62 peka huruf besar-kecil?

Ya. Huruf besar dan huruf kecil mewakili nilai yang berbeda, sehingga string Base62 tidak boleh diubah menjadi huruf besar atau huruf kecil semua.

Sebaiknya memakai Base62 atau Base58?
Base58 menghilangkan 0, O, I, dan l agar orang tidak tertukar saat menyalinnya secara manual. Base62 mempertahankan semua huruf dan angka dan sedikit lebih pendek. Pilih Base58 untuk string yang diketik orang dan Base62 untuk string yang ditangani mesin.