Apakah yang Dilakukan oleh Halaman nano-id-generator?
Halaman ini menghasilkan pengecam unik menggunakan format Nano ID. Anda menentukan panjang dan set aksara yang dibenarkan, dan alat ini akan mengeluarkan satu atau lebih ID yang padat, selamat untuk URL, dan tahan pelanggaran (collision-resistant). Semua penjanaan dilakukan sepenuhnya di dalam pelayar anda menggunakan crypto.getRandomValues – tiada data dihantar ke pelayan BroBroGo.
Apa yang Membezakan Halaman Ini Daripada Alat Penjanaan ID Lain?
Tidak seperti UUID yang mempunyai panjang tetap 36 aksara (termasuk sempang) atau ULID yang sepanjang 26 aksara, Nano ID mempunyai panjang lalai hanya 21 aksara. Ini menjadikannya lebih pendek daripada UUID sementara masih menawarkan ketahanan pelanggaran yang setanding. Perbezaan utama lain:
- Panjang boleh dilaraskan antara 2 hingga 36 aksara melalui gelangsar.
- Alfabet (set aksara) boleh diedit terus dalam medan teks, dengan syarat ia mengandungi sekurang-kurangnya 2 aksara berbeza.
- Sebarang perubahan pada panjang, alfabet, atau kuantiti akan serta-merta menjana semula ID.
- Jika alfabet dikecilkan kepada hanya satu aksara, hasil penjanaan dikosongkan, kiraan ID menjadi 0, dan butang “Salin semua” dilumpuhkan.
- Aksara lalai adalah aksara selamat-URL (
A-Za-z0-9_-), tiada aksara yang memerlukan pengekodan peratus.
Perbandingan ringkas dengan format popular lain:
| Format | Panjang Lalai | Contoh |
|---|---|---|
| UUID v4 | 36 aksara | 550e8400-e29b-41d4-a716-446655440000 |
| ULID | 26 aksara | 01ARZ3NDEKTSV4RRFFQ69G5FAV |
| Nano ID | 21 aksara | V1StGXR8_Z5jdHi6B-myT |
Kelebihan utama Nano ID di sini ialah fleksibiliti penuh: anda tidak terikat dengan satu panjang atau satu set aksara. Ini berguna apabila anda perlu mematuhi kekangan format yang ketat, seperti hanya menggunakan digit, atau mengelakkan aksara yang mudah dikelirukan (contoh: O dan 0, l dan 1).
Input, Output, dan Cara Ia Berfungsi
Input yang diterima oleh alat:
- Format – dipilih daripada menu lungsur, dalam kes ini Nano ID.
- Kiraan – nombor antara 1 hingga 100 (inklusif). Anda boleh hasilkan sehingga 100 ID sekali gus.
- Panjang – gelangsar dengan nilai lalai 21, julat 2 hingga 36.
- Alfabet – medan teks boleh sunting yang mengandungi aksara-aksara yang dibenarkan. Lalai ialah semua aksara selamat-URL:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-.
Output yang dipaparkan:
- Senarai ID – setiap ID unik dipaparkan satu demi satu.
- Kiraan ID – bilangan ID yang berjaya dijana.
- Status:
- Sedia – apabila alat dalam keadaan terbiar.
- Dijana! – selepas penjanaan berjaya.
- Semua disalin! – selepas semua ID disalin ke papan keratan.
- Alfabet perlu sekurang-kurangnya 2 aksara berbeza. – ralat apabila alfabet tidak sah.
Mekanisme penjanaan:
Setiap kali anda menukar mana-mana input (panjang, alfabet, kiraan, atau format), penjanaan semula berlaku serta-merta. Algoritma Nano ID menggunakan crypto.getRandomValues untuk menghasilkan bit rawak yang kuat dari segi kriptografi, kemudian memetakannya ke aksara dalam alfabet yang ditentukan. Oleh kerana rawak ini tidak boleh diramal, ID yang terhasil adalah selamat untuk digunakan sebagai token, kunci pangkalan data, atau pengecam sesi.
Menyalin ID:
- Klik pada ID individu – ia akan disalin ke papan keratan.
- Klik butang “Salin semua” – kesemua ID disalin serentak.
Peraturan dan Kes Tepi yang Perlu Diketahui
Beberapa peraturan penting yang memastikan alat ini berfungsi seperti yang diharapkan:
-
Alfabet mesti mengandungi sekurang-kurangnya 2 aksara berbeza.
Sebab: Jika hanya satu aksara, semua ID akan menjadi rentetan aksara yang sama (cth:aaaa...). Ini bukan lagi pengecam unik. Alat akan kosongkan hasil dan lumpuhkan butang salinan. -
Panjang minimum 2 aksara.
Walaupun 2 aksara mungkin terlalu pendek untuk kegunaan sebenar (risiko pelanggaran tinggi), ia disediakan untuk fleksibiliti maksimum. -
Panjang maksimum 36 aksara.
Ini sudah melebihi panjang lalai 21. Untuk kebanyakan aplikasi, 21 aksara sudah mencukupi; panjang lebih besar meningkatkan ketahanan pelanggaran tetapi juga meningkatkan saiz ID. -
Penjanaan tempatan sepenuhnya.
Tiada data dihantar ke pelayan. Ini penting untuk privasi dan keselamatan, terutamanya jika ID digunakan sebagai token sesi atau kunci rahsia. -
Perubahan input = penjanaan semula segera.
Anda tidak perlu menekan butang “jana”. Setiap pelarasan pada gelangsar, medan alfabet, atau kiraan akan mengemas kini output secara langsung. -
Kiraan ID maksimum 100.
Ini adalah had praktikal untuk mengelakkan beban pada antara muka dan memastikan responsif. Jika anda perlukan lebih banyak ID, lakukan penjanaan berulang.
Siapa yang Memerlukan Alat Ini?
-
Pembangun web yang membina API, penghala pendek, atau sistem yang memerlukan pengecam pendek dan selamat-URL.
Contoh: ID untuk pautan pendek sepertihttps://s.id/abc123boleh menggunakan Nano ID yang lebih pendek daripada UUID. -
Arkitek sistem yang perlu menyesuaikan panjang dan set aksara mengikut kekangan format.
Contoh: Jika pangkalan data hanya menerima aksara alfanumerik besar, anda boleh ubah alfabet kepadaABCDEFGHIJKLMNOPQRSTUVWXYZ. -
Pengguna yang mementingkan privasi yang tidak mahu ID dijana di pelayan pihak ketiga.
Oleh kerana penjanaan berlaku dalam pelayar, tiada risiko ID anda dipintas atau direkodkan. -
Sesiapa yang membina sistem volum tinggi di mana ID yang lebih pendek mengurangkan ruang storan dan overhed penghantaran.
Contoh: Menggunakan ID 12 aksara untuk mengindeks baris dalam pangkalan data NoSQL menjimatkan ruang berbanding UUID 36 aksara.
Aspek Penting: Panjang, Alfabet, dan Kebarangkalian Pelanggaran
Nano ID menggunakan gabungan panjang dan saiz alfabet untuk menentukan ruang ID yang mungkin. Formula asas:
bilangan ID unik yang mungkin = (saiz alfabet)^(panjang)
Contoh dengan nilai lalai:
- Saiz alfabet lalai: 64 aksara (
A-Za-z0-9_-) - Panjang lalai: 21
- Jumlah ID unik yang mungkin: 64²¹ ≈ 1.2 × 10³⁸
Ini jauh lebih besar daripada jumlah UUID v4 (kira-kira 5.3 × 10³⁶), menjadikan risiko pelanggaran sangat rendah untuk kebanyakan aplikasi.
Bagaimana memilih panjang dan alfabet yang sesuai?
- Jika anda perlukan ID yang sangat pendek (cth: 6 aksara) dan hanya menggunakan digit (10 aksara), jumlah ID unik ialah 10⁶ = 1,000,000 – sesuai untuk set data kecil.
- Jika anda perlukan ID yang lebih selamat, gunakan alfabet penuh 64 aksara dengan panjang 21.
- Elakkan aksara yang mudah dikelirukan seperti
O,0,l,1dengan memadamnya daripada medan alfabet.
Kesilapan biasa yang perlu dielakkan:
- Menetapkan alfabet dengan hanya satu aksara – alat akan kosongkan hasil.
- Menggunakan panjang terlalu pendek untuk set data besar – risiko pelanggaran meningkat.
- Tidak menyemak aksara yang tidak selamat-URL – walaupun alat hanya menggunakan aksara lalai, pengubahsuaian alfabet mungkin memperkenalkan aksara seperti
&atau?yang memerlukan pengekodan dalam URL.
Soalan Lazim (FAQ)
1. Mengapa panjang lalai Nano ID ialah 21 aksara?
Panjang 21 aksara dengan alfabet 64 aksara memberikan keseimbangan antara kepadatan dan ketahanan pelanggaran. Ia menghasilkan ID yang lebih pendek daripada UUID (36 aksara) tetapi dengan jumlah kombinasi yang lebih besar (64²¹ berbanding 16³² untuk UUID v4). Ia juga cukup panjang untuk memastikan risiko pelanggaran yang boleh diabaikan dalam sistem yang menghasilkan jutaan ID.
2. Bolehkah saya menggunakan hanya digit (0-9) untuk menjana ID?
Ya. Anda boleh padamkan semua aksara lain dalam medan alfabet, tinggalkan hanya 0123456789. Panjang lalai 21 digit akan menghasilkan 10²¹ kombinasi – sangat besar. Walau bagaimanapun, ID yang terhasil hanya terdiri daripada digit, yang mungkin sukar dibaca oleh manusia tanpa sempang.
3. Apakah yang berlaku jika saya mengosongkan medan alfabet?
Alat akan mengesan bahawa alfabet kosong (atau hanya mengandungi satu aksara unik) dan memaparkan ralat “Alfabet perlu sekurang-kurangnya 2 aksara berbeza.”. Output ID dikosongkan, kiraan menjadi 0, dan butang salinan dilumpuhkan.
4. Adakah ID yang dijana benar-benar unik secara global?
ID yang dijana menggunakan crypto.getRandomValues adalah rawak dari segi kriptografi. Walau bagaimanapun, “unik” di sini bermaksud unik dalam set ID yang dihasilkan pada satu masa. Tidak ada jaminan bahawa ID yang sama tidak boleh dijana pada masa lain (oleh pengguna lain). Untuk kebanyakan aplikasi, ruang ID yang besar (64²¹) menjadikan pertindihan sangat mustahil, tetapi jika anda perlukan jaminan unik global, gunakan kaedah penjadualan berpusat seperti penjana terbitan masa (cth: ULID).
5. Berapa banyak ID yang boleh saya jana sekali gus?
Maksimum 100 ID pada satu masa. Ini had praktikal untuk mengelakkan antara muka menjadi perlahan. Jika anda perlukan lebih, lakukan penjanaan berulang.
6. Adakah alat ini selamat untuk menghasilkan token sesi?
Ya, kerana penjanaan menggunakan crypto.getRandomValues yang disediakan oleh pelayar, ia memenuhi keperluan rawak kriptografi. Tiada data dihantar ke pelayan, jadi token tidak terdedah semasa penjanaan. Namun, anda perlu menyimpan token dengan selamat di pelayan selepas penjanaan.