Cara menggunakan
- Pilih Enkode untuk mengubah teks menjadi Base62, atau Dekode untuk mengubah Base62 kembali menjadi teks.
- Pilih urutan alfabet yang sesuai dengan sistem Anda: 0-9 A-Z a-z (default) atau 0-9 a-z A-Z.
- Ketik atau tempel masukan Anda, atau klik Buka file untuk file kecil (hingga sekitar 20 KB).
- 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) dan0-9a-zA-Z. Beberapa pustaka lain meletakkan huruf sebelum angka. - Nol di awal. Sebagian implementasi menyimpan satu
0untuk 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
| Alfabet | 0-9 A-Z a-z |
|---|---|
| Ukuran keluaran | Sekitar 134% (konversi bilangan besar) |
| Padding | Tidak ada |
| Standar | Tidak ada standar resmi |
| Peka huruf besar-kecil | Ya |
Contoh
| Masukan (UTF-8) | Keluaran |
|---|---|
Hello, World! | 1wJfrzvdbtXUOlUjUf |
Base64.is | NWxjrFq4r3rv |
你好 | 19PqtKE1t |
Pertanyaan yang sering diajukan
Apakah Base62 aman untuk URL?
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.