UTILS.
100% di peramban
🔢

Encode & Decode Base62

Konversi bilangan bulat atau string byte ke dan dari Base62 yang ringkas dan URL-safe (0-9A-Za-z), dengan dukungan BigInt dan varian alfabet GMP, semuanya di browser.

— keluaran muncul di sini —

Tentang alat ini

Alat Base62 meng-encode angka dan string byte ke dalam alfabet ringkas 62 simbol 0-9A-Za-z dan meng-decode-nya kembali. Base62 populer untuk ID pendek, slug URL, dan tautan yang dipendekkan karena tetap URL-safe tanpa karakter +, / atau = yang digunakan Base64. Semua konversi berjalan secara lokal di browser Anda dengan JavaScript BigInt, sehingga nilai sebesar apa pun dihitung tepat dan tidak ada yang diunggah.

Mode bilangan bulat memperlakukan input sebagai bilangan bulat berpresisi arbitrer (desimal, atau hex berawalan 0x): encoding berulang kali membagi dengan 62 dan menambahkan alphabet[remainder] di depan, dan decoding menghitung Σ alphabet.indexOf(ch)·62^position. Mode byte memperlakukan byte input (teks UTF-8 atau hex) sebagai satu bignum big-endian dan menerapkan konversi basis-62 yang sama, tetapi juga mempertahankan byte nol di depan gaya Bitcoin-Base58: setiap byte 0x00 di depan menjadi satu karakter '0' di depan sehingga round-trip tanpa kehilangan data.

Alfabet standar mengurutkan digit, lalu huruf besar, lalu huruf kecil (0-9A-Za-z). Beberapa pustaka — terutama yang dibangun di atas GMP — mengurutkan digit, huruf kecil, lalu huruf besar (0-9a-zA-Z), yang menghasilkan output berbeda untuk nilai yang sama; toggle alfabet memungkinkan Anda mencocokkan mana pun yang digunakan sistem Anda. Pilih arahnya, mode bilangan bulat atau byte, format input untuk byte, dan varian alfabet.

Pertanyaan yang sering diajukan

Apa perbedaan antara mode bilangan bulat dan byte?
Mode bilangan bulat mengonversi satu angka berpresisi arbitrer (desimal atau hex 0x) ke string Base62 dan kembali ke bilangan bulat desimal. Mode byte mengonversi urutan byte (dari teks UTF-8 atau hex) sebagai bignum big-endian, dan mempertahankan byte nol di depan sebagai karakter nol-alfabet di depan sehingga data biner round-trip secara tepat.
Mengapa ada dua alfabet?
Alfabet standar adalah 0-9A-Za-z (huruf besar sebelum huruf kecil). Pustaka berbasis GMP menggunakan 0-9a-zA-Z (huruf kecil sebelum huruf besar). Nilai yang sama di-encode berbeda pada masing-masing, sehingga toggle memungkinkan Anda berinteroperasi dengan urutan mana pun yang diharapkan alat lain Anda.
Seberapa besar angka yang bisa ditangani?
Ukuran berapa pun. Alat ini menggunakan JavaScript BigInt, sehingga tidak ada batas presisi 2^53 — Anda dapat meng-encode dan meng-decode bilangan bulat dan string byte dengan panjang arbitrer secara tepat, yang penting untuk hash, UUID, dan pengidentifikasi panjang.
Bagaimana leading zero ditangani dalam mode byte?
Setiap byte 0x00 di depan di-encode sebagai satu karakter nol-alfabet di depan (seperti '1' di depan pada Base58). Saat decode, setiap karakter nol-alfabet di depan memulihkan satu byte 0x00, sehingga encode lalu decode mengembalikan urutan byte asli yang tepat.

Alat lainnya