Cara menggunakan
- Ketik alfabet Anda, atau pilih Prasetel lalu ubah. Setiap karakter hanya boleh muncul sekali.
- Pilih Metode: Bilangan besar untuk panjang alfabet berapa pun, atau Kelompok bit untuk alfabet berisi 2, 4, 8, 16, 32, atau 64 karakter.
- Dengan Kelompok bit, Anda dapat mengisi Karakter padding yang bukan bagian dari alfabet (opsional).
- Enkode teks Anda, atau tempel string yang ditulis dengan alfabet Anda untuk mendekodenya.
Dua cara memetakan byte ke karakter
Bilangan besar bekerja seperti Base58. Seluruh masukan dibaca sebagai satu bilangan bulat besar lalu dibagi berulang kali dengan panjang alfabet; setiap sisa pembagian memilih satu karakter. Metode ini berlaku untuk alfabet apa pun yang berisi minimal 2 karakter, misalnya 10, 36, 58, atau 62. Byte nol di awal ditulis sebagai karakter pertama alfabet, sehingga tetap utuh setelah dienkode lalu didekode kembali. Tidak ada padding, dan masukan dibatasi sekitar 20 KB karena perhitungannya menjadi lambat pada data yang panjang.
Kelompok bit bekerja seperti RFC 4648. Masukan dipotong menjadi potongan dengan jumlah bit tetap: 1 bit untuk alfabet 2 karakter, 4 bit untuk 16, 5 bit untuk 32, dan 6 bit untuk 64. Setiap potongan menjadi indeks ke dalam alfabet. Begitulah persisnya cara kerja hex, Base32, dan Base64, dan panjang keluarannya hanya bergantung pada panjang masukan.
Mengapa kedua metode memberikan hasil berbeda
Satu metode mengenkode nilai numerik data, sedangkan metode lainnya mengenkode bit-bitnya posisi demi posisi. Hasilnya biasanya berbeda, dan sebuah string harus didekode dengan metode yang menghasilkannya.
| Alfabet | Masukan | Kelompok bit | Bilangan besar |
|---|---|---|---|
| Base64 standar | Hi | SGk= | Ehp |
| Base32 RFC 4648 | Hi | JBUQ==== | SDJ |
01 | A | 01000001 | 1000001 |
0123456789 | Hi | tidak tersedia | 18537 |
Dengan Kelompok bit dan = sebagai padding, alfabet standar menghasilkan Base64 dan Base32 biasa. Bilangan besar membuang bit nol di awal pada A karena metode ini menulis nilai, bukan jumlah bit yang tetap. Dengan sepuluh digit sebagai alfabet, metode ini hanya menampilkan byte Hi sebagai bilangan desimal.
Karakter padding hanya berlaku untuk Kelompok bit. Keluaran diberi padding hingga kelipatan 4 karakter untuk alfabet 64 karakter dan hingga kelipatan 8 untuk alfabet 32 dan 8 karakter. Dengan 2, 4, atau 16 karakter, setiap byte mengisi karakter secara utuh, sehingga padding tidak pernah diperlukan.
Aturan alfabet yang valid
- Minimal dua karakter.
- Tanpa duplikat. Decoder memetakan setiap karakter kembali ke tepat satu nilai. Jika
amewakili 0 sekaligus 10, string yang memuatnya tidak dapat didekode. - Huruf besar-kecil berpengaruh.
adanAadalah karakter yang berbeda. - Karakter padding tidak boleh ada di dalam alfabet, karena jika ada, karakter itu tidak dapat dibedakan dari data.
Semuanya berjalan di browser Anda, sehingga alfabet dan data Anda tetap berada di perangkat Anda.
Kapan alfabet kustom berguna
- ID yang disamarkan. Alfabet yang diacak mengubah pengenal menjadi token tanpa pola yang jelas. Ini menyembunyikan, bukan melindungi: siapa pun yang mengetahui alfabetnya dapat mendekodenya.
- Format tertutup atau lawas. Salin alfabet milik suatu sistem dari dokumentasinya dan dekode datanya secara langsung.
- Belajar. Bandingkan berbagai panjang alfabet dan kedua metode untuk melihat cara kerja konversi basis. Untuk alfabet tetap, lihat Base58 dan Base62.
Pertanyaan yang sering diajukan
Apa perbedaan Bilangan besar dan Kelompok bit?
Bilangan besar mengonversi seluruh masukan sebagai satu bilangan bulat ke basis baru, seperti Base58, dan dapat dipakai dengan panjang alfabet berapa pun. Kelompok bit membagi masukan menjadi potongan bit berukuran tetap, seperti Base64, dan memerlukan alfabet berisi 2, 4, 8, 16, 32, atau 64 karakter.
Mengapa alfabet Base64 kustom saya tidak cocok dengan keluaran Base64 standar?
Base64 standar memakai kelompok bit. Pilih metode Kelompok bit dan isi Karakter padding dengan = agar hasilnya cocok. Metode Bilangan besar menghasilkan string yang sama sekali berbeda dari alfabet yang sama.
Mengapa karakter duplikat tidak diperbolehkan?
Setiap karakter harus didekode menjadi tepat satu nilai. Karakter yang berulang akan memiliki dua arti, sehingga data asli tidak dapat dipulihkan dengan andal.
Bisakah saya memakai karakter padding dengan metode Bilangan besar?
Tidak. Keluaran Bilangan besar tidak memiliki ukuran blok tetap, jadi tidak ada yang perlu diberi padding. Opsi padding hanya berlaku untuk Kelompok bit.
Apakah alfabet kustom termasuk enkripsi?
Tidak. Ini tetap pengodean tanpa kunci. Alfabet yang diacak dapat membuat data lebih sulit dikenali sekilas, tetapi tidak boleh dipakai untuk melindungi rahasia.