Generator UUID v4

Damel nilai UUID v4 kanthi online: 122 bit acak, wujud UUID standar, lan asil ingkang siyap dipunsalin ing browser panjenengan.

Format
ID ingkang dipungenerate
Siyap. Damel nilai UUID v4 ing browser panjenengan.

Kadospundi ID punika dipundamel

Tata letak
UUID 128-bit mawi versi 4 lan bit varian RFC, dipuntuduhaken minangka klompok heksadesimal 8-4-4-4-12.
Entropi
122 bit acak saking crypto.randomUUID().
Wektu
Mboten wonten; ID v4 mboten nuduhaken wektu pandamelanipun.
Risiko tabrakan (collision)
Tabrakan dipunatur dening 122 bit acak, ingkang tebih nglangkungi volume praktis kagem sistem normal.
Tuladha
006cb104-1cc9-4cbf-83fe-fa4e1f4d3c11

ID panjenengan dipungenerate kanthi lokal mawi sistem acak browser ingkang kuwat. Mboten wonten data ingkang dipunkirim dhateng BroBroGo.

Pitakenan Umum (FAQ)

Kapan kula kedah ngginakaken UUID v4?

Ginakaken UUID v4 nalika panjenengan mbetahaken pengenal acak ingkang mboten saged dipunwaos aslinipun, mboten saged dipunurutaken miturut wektu, lan mboten nuduhaken informasi wektu.

Menapa kula saged mbuwang garis hubung utawi ndamel asilipun dados aksara ageng?

Nggih. Piranti UUID v4 ingkang dipunkunci tetep njaga panel pilihan UUID, saengga panjenengan saged ngaktifaken utawi mateni garis hubung lan aksara ageng.

Generator UUID v4: Piranti Lan Cara Kerjane

Struktur UUID v4 lan 122 Bit Acak

UUID (Universally Unique Identifier) versi 4 iku salah siji saka pirang-pirang format identifier sing dirancang kanggo menehi jeneng unik tanpa perlu koordinasi pusat. Bedane utama karo UUID liyane yaiku UUID v4 nggunakake 122 bit acak murni saka total 128 bit. Enem bit liyane wis ditemtokake: 4 bit nuduhake versi (nilai 0100, tegese v4) lan 2 bit nuduhake varian (biasane 10 kanggo RFC 4122). Mula, saben UUID v4 sing digawe ing kaca iki nduweni 122 bit entropy – ateges, saben karakter heksadesimal (kajaba sing ditemtokake) asale saka acak sing kuwat.

Format kanonik UUID v4 yaiku 8-4-4-4-12, yaiku 32 karakter heksadesimal sing dipisah karo 4 hyphens, dadi total 36 karakter. Contone: 550e8400-e29b-41d4-a716-446655440000. Nalika hyphens dibusak, dadi 32 karakter heksadesimal: 550e8400e29b41d4a716446655440000. Kaca iki ngidini sampeyan ngontrol loro aspek format: huruf gedhe (A-F utawa a-f) lan anane hyphens. Nanging, dhasare tetep padha: 122 bit acak sing distruktur miturut standar.

Apa sebabe 122 bit dadi penting? Amarga bit kasebut njamin yen saben UUID v4 unik ing skala global. Ora kaya UUID v1 sing nggunakake alamat MAC lan wektu, utawa v7 sing nggunakake timestamp sing diurutake, v4 murni acak. Iki nduweni implikasi gedhe kanggo carane data diindeks lan carane sistem ngatur konflik.

Acak, Kolisi, lan Kemungkinan Tabrakan

Kanthi 122 bit acak, kemungkinan tabrakan (loro UUID padha) iku astronomis cilik. Kanggo menehi gambaran: yen sampeyan ngasilake 1 triliun UUID v4 saben detik sajrone 100 taun, kemungkinan tabrakan isih kurang saka 1 ing 1 milyar. Rumus sing digunakake yaiku: kemungkinan tabrakan P ≈ k² / 2N, ing ngendi k iku jumlah UUID sing digawe lan N = 2¹²². Kanggo k = 10¹² (1 triliun), P ≈ 10²⁴ / (2 · 2¹²²) = 10²⁴ / 2¹²³ ≈ 10²⁴ / (1.06 × 10³⁷) ≈ 9.4 × 10⁻¹⁴. Kanthi tembung liyane, practically negligible.

Kaca iki nggunakake crypto.randomUUID (utawa fungsi sing padha) sing diwenehake dening browser. Iki tegese acak kasebut asale saka sumber entropi sistem operasi, ora saka generator pseudo-acak sing bisa ditebak. Dadi, saben UUID v4 sing digawe iku kriptografis aman – cocog kanggo token API utawa ID sesi sing ora bisa ditebak.

Nanging, ana kesalahan umum: wong asring ngira yen UUID v4 bisa digunakake kanggo ngurutake miturut wektu, nanging ora. Ora ana komponen wektu ing kene. Yen sampeyan butuh ID sing bisa diurutake, gunakake UUID v7 utawa ULID. Kaca iki nyedhiyakake pilihan format liyane ing dropdown, nanging v4 pilihan utama kanggo acak murni.

Dampak ing Indeks Database lan Fragmentasi B-Tree

Salah sawijining aspek sing paling kritis kanggo perancang database yaiku kepiye UUID v4 mengaruhi kinerja indeks. Database relasional biasane nggunakake B-tree (utawa varian) kanggo indeks primary key. Yen primary key iku UUID v4 sing acak, saben baris anyar bakal diselipake ing posisi acak ing wit. Iki nyebabake fragmentasi sing signifikan, amarga kaca indeks kerep dipisah (page splits) kanggo nampung urutan acak.

Contone, bayangake sampeyan duwe tabel kanthi 10 yuta baris lan primary key UUID v4. Saben sisipan anyar mbutuhake update indeks B-tree ing lereng sing beda, bisa nyebabake akeh I/O acak. Bandhingake karo UUID v7 sing nggunakake timestamp sing terus-terusan: baris anyar biasane ditambahake ing pucuk indeks, nyuda fragmentasi. Kanthi v4, indeks bisa ambruk dadi 50% utawa luwih ora efisien saka segi panggunaan papan, lan kacepetan sisipan bisa mudhun nganti 5-10 kali luwih alon ing beban dhuwur.

Nanging, kanggo sistem sing nyebar (distributed) utawa offline ing ngendi ora bisa koordinasi wektu, v4 dadi pilihan sing ora bisa dihindari. Kaca iki nyedhiyakake control count (1-100) supaya sampeyan bisa ngasilake akeh ID sekaligus, nanging elinga yen saben ID kasebut ora duwe urutan. Yen sampeyan nggunakake v4 ing database, pertimbangake nggunakake indeks clustered non-B-tree (kayata LSM-tree ing Cassandra) utawa nggunakake primary key liyane kanggo ngurutake.

Panganggo kanggo ID Non-Urutan: Nyegah Enumerasi lan Kerjasama Offline

UUID v4 sering digunakake kanggo nyegah enumerasi. Contone, yen sampeyan nggawe API kanggo sumber daya (kayata file, invoice, utawa profil pangguna), nggunakake ID sing bisa ditebak (kayata integer berurutan) ngidini panyerang bisa ngira ID liyane lan ngakses data sing ora sah. UUID v4 kanthi acak 122 bit nggawe praktis ora mungkin kanggo ngira ID sabanjure. Iki migunani banget kanggo engineer keamanan nalika nggawe token akses, session ID, utawa request ID.

Kajaba iku, ing lingkungan offline utawa sing ora duwe server pusat (kayata aplikasi seluler utawa IoT), UUID v4 ngidini piranti nggawe ID unik tanpa kudu komunikasi. Ora ana titik kegagalan tunggal, lan tabrakan meh ora mungkin. Contone, saben cathetan diary ing piranti sampeyan bisa duwe UUID v4; nalika disinkronake menyang server, ora bakal ana konflik nalika gabung.

Nanging, para pengembang kudu eling yen collision probability ora nol. Ing skala sistem kanthi milyaran obyek, sanajan kemungkinan cilik, isih ana. Biasane, aplikasi kudu nyiapake deteksi tabrakan (contohe, nggunakake unique constraint ing database). Nanging ing praktik, kanggo umume sistem, resiko iki bisa ditrima.

Kustomisasi Format: Hyphens lan Huruf Gedhe

Kaca iki nyedhiyakake rong kontrol format sing mung relevan kanggo UUID (v4 lan v7). Kanggo ID liyane kaya ULID utawa NanoID, kontrol kasebut beda. Ing kene, sampeyan bisa milih:

  • Hyphens: Biasane, UUID ditulis kanthi hyphens kanggo keterbacaan. Nanging, ing URL utawa sistem sing sensitif spasi, hyphens bisa dadi masalah. Yen dibusak, string dadi 32 karakter heksadesimal, luwih kompak nanging kurang gampang diwaca. Contone, URL path kaya /api/resource/550e8400e29b41d4a716446655440000 luwih cekak tinimbang karo hyphens.
  • Huruf gedhe: Hex digit a-f bisa ditulis minangka A-F. Iki mung masalah estetika utawa standar organisasi. Sawetara sistem (kayata Windows Registry) nggunakake huruf gedhe, liyane huruf cilik. Kaca iki langsung regenerasi kabeh ID nalika sampeyan ngowahi setelan iki.

Penting: kustomisasi format ora ngowahi dhasar 122 bit acak. Sampeyan mung ngganti representasi visual. Nanging, yen sampeyan nggunakake UUID minangka string ing basis data, mesthekake konsistensi format penting kanggo indeks. Contone, yen sampeyan nyimpen UUID tanpa hyphens ing kolom VARCHAR, nanging banjur nyoba nggoleki nganggo hyphens, query bisa gagal.

Generasi ing Browser: Privasi lan Latensi

Kabeh generasi UUID v4 ing kaca iki ditindakake lokal ing browser sampeyan. Ora ana data sing dikirim menyang server. Iki nduweni kaluwihan gedhe:

  • Privasi: Ora ana server sing ngerti UUID sing digawe. Sampeyan bisa nggawe token rahasia kanthi aman tanpa khawatir bocor.
  • Latensi: ID kasedhiya langsung sawise sampeyan milih setelan. Ora ngenteni respon jaringan.
  • Kapasitas: Sampeyan bisa ngasilake nganti 100 UUID saben wektu (count 1-100). Kanthi browser modern, iki rampung ing sawetara milidetik.

Kaca iki nggunakake crypto.getRandomValues() utawa crypto.randomUUID() sing kasedhiya ing browser modern. Fungsi iki dijamin aman sacara kriptografis. Yen browser lawas, kaca iki nyedhiyakake fallback nggunakake generator pseudo-acak sing apik, nanging biasane browser modern kabeh ndhukung.

Conto implementasi: nalika sampeyan ngeklik tombol "Generated", kode JavaScript nggawe array anyar kanthi ukuran count, banjur kanggo saben item, ngisi 16 byte (128 bit) acak, nyetel bit versi lan varian, banjur ngowahi dadi heksadesimal kanthi utawa tanpa hyphens lan huruf gedhe. Proses iki sinkron lan cepet.

FAQ

1. Apa bedane UUID v4 karo UUID v7?
UUID v4 nggunakake 122 bit acak tanpa informasi wektu, saengga ID ora bisa diurutake miturut wektu digawe. UUID v7 nggalihake 48 bit pertama kanggo timestamp Unix (milidetik), saengga ID bisa diurutake miturut wektu. v7 luwih apik kanggo indeks database nanging ngumumake wektu digawe. Pilih v4 yen ora pengin wektu dingerteni.

2. Apa bisa entuk UUID v4 sing padha karo sing wis digawe sadurunge?
Sinten, nanging kemungkinane meh nol. Kanthi 122 bit acak, sampeyan kudu ngasilake luwih saka 2^61 (kira-kira 2,3 triliun) UUID sadurunge kemungkinan tabrakan tekan 50%. Ing praktik, kanggo sistem kanthi kurang saka 1 milyar obyek, risiko iki ora patia.

3. Ngapa count maksimal mung 100?
Kanggo njaga kinerja lan kegunaan. Ngasilake 100 UUID sanalika wis cukup kanggo umume kasus (kayata ngisi database uji coba). Yen butuh luwih akeh, sampeyan bisa ngeklik tombol maneh utawa nggunakake alat liyane.

4. Apa hyphens mengaruhi unik?
Ora. Hyphens mung pemisah visual. UUID 550e8400-e29b-41d4-a716-446655440000 lan 550e8400e29b41d4a716446655440000 padha-padha unik. Nanging, yen sampeyan nyimpen tanpa hyphens lan banjur nggoleki nganggo hyphens, query bisa gagal amarga ora cocog.

5. Bisa digunakake kanggo token akses API?
Ya, amarga 122 bit acak lan dibangkitake nganggo kriptografi sing aman, UUID v4 cocok kanggo token akses. Nanging, elinga yen token kasebut dideleng menyang pangguna; kanggo rahasia sing luwih dhuwur, gunakake format sing luwih dawa (kayata token 256-bit).

6. Mengapa kaca iki ora ngirim data menyang server?
Kanggo privasi lan kacepetan. Kabeh ID digawe ing browser nggunakake sumber daya lokal. Ora perlu internet, ora ana log server, lan pangguna bisa ngasilake ID tanpa khawatir karo kebocoran data.