Penjana UUID v4: Penghasilan Pengecam Unik Rawak dalam Bentuk Piawai
Halaman penjana UUID v4 ini membolehkan anda menghasilkan satu atau lebih pengecam unik versi 4—rentetan 36 aksara dalam format heksadesimal piawai 8-4-4-4-12. Anda mengawal bilangan ID (sehingga 100), sama ada ia dipaparkan dalam huruf besar atau kecil, dan sama ada tanda sempang disertakan atau tidak. ID dihasilkan serta-merta dalam pelayar anda menggunakan sumber rawak kriptografi yang kukuh; anda boleh menyalin satu ID atau kesemuanya sekali gus.
Apakah UUID v4 dan Bagaimana Strukturnya?
UUID (Universally Unique Identifier) versi 4 menggunakan 122 bit rawak yang terkandung dalam 16 oktet. Perwakilan teksnya terdiri daripada 32 digit heksadesimal yang disusun dalam corak 8-4-4-4-12 bersama empat tanda sempang, menjadikan jumlah panjang 36 aksara. Contoh biasa: 550e8400-e29b-41d4-a716-446655440000. Setiap aksara heksadesimal mewakili 4 bit, jadi 32 aksara × 4 bit = 128 bit, tetapi 6 bit tersebut diperuntukkan untuk versi dan varian (bit versi 0100 untuk v4 dan bit varian 10xx). Oleh itu, baki 122 bit adalah rawak sepenuhnya.
Format UUID v4 ditakrifkan dalam RFC 4122. Tiada cap masa atau maklumat urutan lain yang tertanam dalam nilai ini. Ini berbeza dengan UUID v7 yang menggunakan 48 bit cap masa atau ULID yang menggunakan 48 bit cap masa. Oleh kerana UUID v4 hanya bergantung kepada rawak, nilai-nilainya tidak boleh diisih mengikut kronologi—ia tersusun secara arbitrari. Ini adalah perbezaan utama yang mempengaruhi cara ID ini digunakan dalam pangkalan data dan sistem teragih.
Ciri Utama Penjana UUID v4 Ini
Penjana ini menawarkan dua togol utama dan satu kawalan kiraan yang berfungsi dengan segera. Apabila anda menukar mana-mana pilihan—sama ada kiraan, huruf besar/kecil, atau tanda sempang—keseluruhan set ID dijana semula.
| Pilihan | Nilai Lalai | Julat/Kesan |
|---|---|---|
| Format | UUID v4 | Boleh ditukar ke UUID v7, ULID, atau NanoID (tetapi artikel ini hanya meliputi UUID v4) |
| Kiraan | 1 | 1 hingga 100 |
| Huruf besar | Tidak | Jika diaktifkan, output menggunakan huruf besar (contoh: 550E8400-E29B-41D4-A716-446655440000) |
| Sertakan tanda sempang | Ya | Jika dimatikan, output menjadi 32 digit heksadesimal berturut-turut tanpa pemisah |
Setiap ID dipaparkan dalam senarai. Anda boleh mengklik mana-mana ID individu untuk menyalinnya ke papan klip. Butang “Salin semua” akan menyalin semua ID yang dipaparkan. Status di bahagian atas menunjukkan “Sedia.” pada mulanya, “Dijana.” selepas penjanaan, dan “Semua disalin!” selepas operasi salinan semua.
Bagaimana UUID v4 Dihasilkan Secara Setempat?
Semua penjanaan berlaku dalam pelayar anda menggunakan antara muka Crypto.getRandomValues() yang disediakan oleh Web Crypto API. Ini adalah generator nombor pseudo-rawak kriptografi yang menggunakan sumber entropi sistem pengendalian. Tiada data dihantar ke pelayan; halaman ini berfungsi sepenuhnya di sisi pelanggan. Ini bermakna privasi dan keselamatan anda terpelihara—tiada pihak ketiga boleh memintas ID yang dijana.
Proses penjanaan UUID v4 melibatkan penciptaan 16 bait rawak. Bait keenam diubah suai untuk menetapkan bit versi kepada 0100 (versi 4), dan bait kelapan diubah suai untuk menetapkan bit varian kepada 10xx (varian RFC 4122). Baki bait kekal seperti yang dijana. Kemudian, bait-bait ini ditukar kepada perwakilan heksadesimal dan disusun mengikut corak 8-4-4-4-12, dengan tanda sempang dimasukkan jika togol tersebut diaktifkan.
Kebarangkalian pelanggaran (collision) untuk UUID v4 adalah sangat kecil. Dengan 122 bit rawak, ruang alamat adalah 2^122, iaitu kira-kira 5.3 × 10^36. Mengikut formula masalah hari lahir, untuk mencapai 50% kebarangkalian pelanggaran, anda perlu menjana kira-kira 2.71 × 10^18 ID. Dalam amalan, ini bermakna untuk kebanyakan aplikasi, UUID v4 boleh dianggap unik tanpa perlu menyemak pertindihan.
Perbezaan dengan Format Pengecam Lain
Halaman ini juga menyokong UUID v7, ULID, dan NanoID, tetapi UUID v4 mempunyai ciri unik yang membezakannya. Jadual di bawah meringkaskan perbezaan utama:
| Ciri | UUID v4 | UUID v7 | ULID |
|---|---|---|---|
| Sumber rawak | 122 bit rawak | 74 bit rawak | 80 bit rawak |
| Cap masa | Tiada | 48 bit (milisaat) | 48 bit (milisaat) |
| Kebolehisihan kronologi | Tidak | Ya | Ya |
| Panjang aksara | 36 (dengan tanda sempang) | 36 (dengan tanda sempang) | 26 (Crockford Base32) |
| Kesesuaian untuk indeks pangkalan data | Buruk (serakan rawak) | Sederhana (terisih mengikut masa) | Baik (terisih mengikut masa) |
UUID v4 sesuai apabila keperluan utama adalah ketidakramalan dan keunikan tanpa sebarang maklumat masa. Contoh penggunaan termasuk token sesi, ID pengesahan, kunci keselamatan, dan pengecam tanpa nama. ULID dan UUID v7 lebih sesuai untuk kunci utama pangkalan data kerana sifatnya yang boleh diisih mengikut masa mengurangkan fragmentasi indeks.
Apabila anda menukar format pada halaman ini, pilihan untuk huruf besar dan tanda sempang mungkin berubah kerana format lain mempunyai peraturan tersendiri. Untuk UUID v4, kedua-dua togol tersedia; untuk ULID, huruf besar sentiasa digunakan dan tiada tanda sempang.
Kesan UUID v4 pada Prestasi Pangkalan Data
Salah satu pertimbangan paling penting semasa menggunakan UUID v4 sebagai kunci utama dalam pangkalan data hubungan adalah kesan terhadap prestasi indeks. Oleh kerana ID ini dihasilkan secara rawak dan tidak mengikut urutan kronologi, apabila dimasukkan ke dalam indeks B-tree, ia menyebabkan banyak kemasukan pada halaman rawak. Ini menghasilkan fragmentasi indeks yang tinggi dan peningkatan pertukaran halaman (page splits). Untuk jadual yang besar, ini boleh mengurangkan prestasi tulis dengan ketara.
Sebaliknya, kunci utama yang dihasilkan secara berurutan (seperti integer auto-increment atau UUID v7) cenderung untuk menambahkan data pada hujung indeks, meminimumkan pergerakan halaman. Jika anda merancang untuk menggunakan UUID v4 sebagai kunci utama, sediakan strategi seperti penggunaan indeks berkelompok yang berasingan, atau pertimbangkan untuk beralih kepada UUID v7 atau ULID jika prestasi tulis adalah kritikal.
Walau bagaimanapun, untuk jadual yang jarang ditulis, atau untuk ID yang tidak diindeks (contohnya, pengecam luaran yang disimpan sebagai lajur bukan kunci), UUID v4 adalah pilihan yang sangat baik kerana ia boleh dijana secara bebas tanpa memerlukan capaian pangkalan data atau koordinasi pusat.
Cara Menggunakan Halaman Penjana Ini dengan Berkesan
Antara muka halaman ini direka untuk pengeluaran cepat UUID v4 dalam kelompok. Anda boleh menetapkan kiraan kepada sebarang nilai antara 1 dan 100. Jika anda memasukkan nilai di luar julat ini, halaman tidak akan menerimanya. Selepas menetapkan pilihan, klik butang Jana (atau tukar mana-mana pilihan untuk mencetuskan penjanaan semula). ID akan muncul dalam senarai.
Untuk menyalin ID individu, klik pada ID tersebut. Untuk menyalin semua ID, klik butang “Salin semua”. Status akan dikemas kini untuk menunjukkan bahawa data telah disalin. Semua operasi berlaku melalui API papan klip pelayar, yang memerlukan tindakan pengguna (klik) untuk alasan keselamatan.
Halaman ini boleh digunakan di luar talian selepas dimuatkan kali pertama, kerana semua logik penjanaan adalah JavaScript yang dilaksanakan secara tempatan. Tiada kebimbangan privasi kerana tiada data dihantar ke pelayan.
Soalan Lazim (FAQ)
1. Bolehkah saya menggunakan UUID v4 yang dijana di sini untuk ID sesi? Ya, UUID v4 sangat sesuai untuk ID sesi kerana ia tidak dapat diramal dan dihasilkan daripada rawak kriptografi. Pastikan anda menggunakan bilangan rawak yang mencukupi dan jangan kitar semula ID.
2. Adakah penjanaan UUID v4 selamat untuk aplikasi keselamatan?
Ya, kerana ia menggunakan Crypto.getRandomValues(), sumber rawak yang sama digunakan untuk fungsi kriptografi dalam pelayar. Ini dianggap selamat untuk kebanyakan tujuan keselamatan, termasuk token dan kunci.
3. Apa yang berlaku jika saya tukar format ke UUID v7 atau ULID? Pilihan untuk huruf besar dan tanda sempang mungkin berubah atau tidak tersedia untuk format lain. Halaman akan menjana semula ID mengikut format baharu. Untuk UUID v7, coraknya sama tetapi dengan cap masa tersemat.
4. Bolehkah saya hasilkan lebih daripada 100 ID sekali gus? Tidak, had maksimum yang dibenarkan oleh halaman ini adalah 100. Jika anda perlukan lebih, anda boleh menjana beberapa kumpulan secara berasingan.
5. Adakah halaman ini berfungsi tanpa sambungan internet? Ya, selepas halaman dimuatkan, semua kod berjalan dalam pelayar. Anda boleh menjana UUID v4 di luar talian tanpa sebarang sekatan.
6. Bagaimana saya tahu ID yang dijana benar-benar unik? Kebarangkalian pelanggaran adalah amat rendah—kira-kira 1 dalam 5.3 × 10^36 untuk dua ID. Anda boleh menyemak secara manual, tetapi dalam amalan, pelanggaran hampir mustahil. Jika anda perlu memastikan keunikan mutlak dalam pangkalan data, gunakan kekangan unik pada lajur tersebut.
Halaman penjana UUID v4 ini menyediakan alat yang mudah, cepat, dan selamat untuk menghasilkan pengecam rawak piawai. Dengan kawalan ke atas huruf besar dan tanda sempang, serta keupayaan untuk menghasilkan sehingga 100 ID sekali gus, ia memenuhi keperluan pembangun, pentadbir pangkalan data, dan sesiapa sahaja yang memerlukan ID unik yang tidak dapat diramal.