Generator UUID

Gawe UUID ing browser sampeyan: v4 sing acak, v7 sing urut wektu, utawa v5 deterministik. Gawe nganti 1000 bebarengan, lan data ora tau metu saka piranti sampeyan.

Pencet «Gawe» kanggo milih
Versi
Opsi Lanjutan

Butuh pengidentifikasi sing ora bakal bentrok karo sing digawe wong liya, ing mesin sing durung nate mbok rungu, tanpa njaluk idin marang sapa wae? Kuwi fungsine UUID. Iki minangka angka 128-bit, sing ditulis dadi 36 karakter ing pola 8-4-4-4-12 sing wis dikenal, lan kabeh desaine yaiku supaya ora ana rong UUID sing padha sanajan ora ana sing ngoordinasi sapa sing entuk sing endi. Generator gratis iki nggawe UUID langsung ing browser sampeyan: pilih versi ing 'Versi', temtokake pira sing sampeyan butuhake ing 'Cacahe pilihan', lan penet 'Gawe asil'. Kaca iki mbukak ing siji v4, versi sing paling asring dikarepake umume proyek, mula pengidentifikasi pisanan mung kari sak klik wae.

Saben pengidentifikasi digawe dening browser sampeyan liwat Web Crypto API. Versi 4 nggunakake crypto.randomUUID() yen browser nyedhiyakake lan crypto.getRandomValues() yen ora — sumber keacakan sing kuwat sacara kriptografis tinimbang nggunakake fungsi pseudo-acak JavaScript kayata Math.random(). Versi 7 nyelehake stempel wektu milidetik 48-bit ing ngarep, banjur penghitung 12-bit sing mundhak ing milidetik sing padha, banjur 62 bit acak, sing minangka cara pengurutan sing dijelasake ing RFC 9562; penghitung iku sing njalari sewu UUID metu kanthi urut lan ora acak. Versi 1 nggabungake stempel wektu karo pengidentifikasi node acak sing nduweni bit multicast sing disetel, dadi versi iki ora nate nggawa alamat kertu jaringan sampeyan kaya sing ditindakake implementasi asline ing taun 1990-an. Versi 3 lan 5 ora acak babar pisan: kekarone nge-hash namespace bebarengan karo jeneng, nggunakake MD5 lan SHA-1, lan hashing iku uga kedadeyan ing piranti sampeyan. Ora ana sing dikirim menyang server, ora ana sing dicathet, lan sawise kaca dimuat, kaca tetep mlaku sanajan sambungan mati.

'Versi' minangka kolom sing nemtokake kabeh liyane. Versi 4 minangka 122 bit acak lan tanpa struktur — iki minangka default, lan jawaban sing bener yen pengidentifikasi mung kudu unik. Versi 7 njaga 62 bit acak nanging diwiwiti kanthi wektu digawe, supaya sekumpulan UUID iku ngurutake dhewe miturut wektu nggawe; iki sing ndadekake versi iki cocog dipilih yen pengidentifikasi bakal dadi kunci database. Versi 1 minangka skema adhedhasar wektu sing asli, disimpen ing kene kanggo sistem sing isih njaluk. Versi 3 lan 5 minangka pasangan sing aneh: deterministik, sing tegese input sing padha tansah ngasilake pengidentifikasi sing padha, lan mbutuhake rong kolom tambahan — 'Namespace', sing dadi salah siji saka ruang standar DNS, URL, OID lan X.500 utawa ruang 'Kustom' sampeyan dhewe, lan 'Jeneng', yaiku string sing diidentifikasi. Yen sampeyan menehi v5 namespace URL lan https://example.com/a sampeyan bakal entuk UUID sing padha dina iki, sesuk, lan ing mesine wong liya. Amarga iku, 'Cacahe pilihan' ilang yen v3 utawa v5 dipilih: sewu salinan saka nilai deterministik siji mung bakal dadi sewu salinan saka nilai deterministik siji. Kanggo saben versi liyane, 'Cacahe pilihan' mlaku saka 1 tekan 1000.

Papat saklar ngganti wujud output tanpa ngowahi 128 bit ing mburine. 'Aksara gedhe' nyetak digit heksadesimal dadi huruf gedhe, 'Tanpa tandha hubung' menehi wujud ringkes 32 karakter sing luwih disenengi sawetara kolom lan jeneng file, lan 'Kurung kurawal' mbungkus nilai kasebut ing jero tandha { } — wujud sing diarani GUID dening Windows lan donya .NET. Ing ngisor 'Opsi Lanjutan', urn:uuid: nambahake awalan sing ndadekake URN resmi; iki mateni 'Kurung kurawal' lan 'Tanpa tandha hubung' nalika urip, amarga standar mung ngidini siji wujud URN lan kuwi minangka wujud kanonikal sing ana tandha hubunge. 'Format salin' mutusake kepriye sekumpulan UUID digabungake yen sampeyan njupuk: siji saben baris, dipisahake nganggo koma, utawa saben nilai ing jero tandha kutip karo koma ing mburi, sing nempel langsung dadi array ing kode. Ing ngisor asile ana baris sing nglaporake keacakan ing bit — 122 kanggo v4, 62 kanggo v7 — lan, kanggo v7, stempel wektu sing dienkode ing pengidentifikasi pisanan saka kumpulan kasebut, supaya wektu ing jero nilaine katon lan ora mung disiratake. 'Salin Kabeh' lan 'Simpen menyang file' kalorone manut marang 'Format salin'. 'Riwayat' nyimpen 10 batch pungkasan ing browser sampeyan dhewe: klik salah siji kanggo mbukak maneh, salin utawa busak siji entri, utawa busak kabeh. 'Busak' ngosongake asil nanging tetep njaga pangaturan sampeyan, lan sawise 50 pengidentifikasi, daptar kasebut dadi siji blok sing bisa digulir tinimbang seket baris.

Sing paling duwe pangaruh ing kaca iki yaiku bedane v4 lan v7 minangka primary key, lan iki dudu masalah selera. Indeks database yaiku wit sing disimpen miturut urutan sing disortir, lan ing endi kunci anyar mlebu ing urutan kasebut mutusake sepira akehe gawean sing dibutuhake kanggo nindakake sisipan. Kunci v4 kuwi acak, dadi sisipan sing terus-terusan bakal mlebu ing sudhut indeks sing ora ana hubungane: kaca sing sadurunge kebak bakal pecah, perangan wit sing ditahan database ing memori arang banget dadi perangan sing dibutuhake kanggo sisipan sabanjure, lan pungkasane indeks kasebut dadi luwih gedhe lan luwih kapisah-pisah tinimbang mestine. Kunci v7 diwiwiti kanthi milidetik saiki, dadi sisipan sing terus-terusan bakal mlebu ing pinggir tengen wit sacara bebarengan, sing minangka pola sing diasilake dening angka sing mundhak otomatis lan pola sing dadi dhasar struktur indeks. Iku inti saka pertukaran iki: v7 menehi sampeyan prilaku sisipan saka kunci sing berurutan nalika njaga sipat sing biyen nggawe sampeyan milih UUID, yaiku sapa wae bisa nyetak tanpa njaluk marang server. Resikone yaiku wektu nggawe saiki bisa diwaca ing njero pengidentifikasi kasebut, lan apa iku dadi masalah gumantung ing data sampeyan, dudu ing format.

Ora ana sing tau mriksa UUID kanggo mesthekake keunikane; ukurane minangka jaminane. Ora ana registri, ora ana bolak-balik server, ora ana panelusuran — siji generator nggawe angka lan masrahake, lan alesan ngapa ora ana loro sing tabrakan mung amarga ana 2^122 kemungkinan nilai v4, udakara 5,3 × 10^36. Masalah ulang taun minangka cara jujur kanggo ngukur: sampeyan butuh udakara 2,7 × 10^18 pengidentifikasi sadurunge ana kemungkinan 50% kanggo rong UUID kasebut padha, yaiku siji milyar UUID anyar saben detik sajrone 86 taun. Penting kanggo ngerti kanthi pas apa sing dijanjikake lan sing ora dijanjikake. Iki minangka jaminan statistik, dudu aritmatika, lan mung ditrapake yen keacakan ing mburine pancen asli — generator sing dipasangi seed sing ala, utawa mesin virtual sing dikloning bebarengan karo blumbang entropine, bakal ngrusak kanthi cara sing ora bisa dideteksi dening format. Versi 7 luwih ngringkes pitakonan iki: ing sajrone milidetik, siji generator ora bisa mbaleni awake dhewe amarga penghitung mundhak tinimbang ngacak dadu, lan ing antarane generator independen, 62 bit acak sing tumindak.

UUID kuwi pengidentifikasi, dudu sandhi. Versi 4 ora bisa diprediksi, lan iki ndadekake wong-wong nggunakake minangka rahasia — tautan reset sandhi, URL sing ora bisa ditebak, token sesi, kunci API. Ketidakpastian kasebut nyata, nanging wadi minangka sifat saka carane nilai kasebut ditangani, lan pengidentifikasi pancen ditangani kanthi bebas: ana ing URL, sing mlebu ing riwayat browser, log server, header referrer lan analitik, lan asring ditempel menyang pesen obrolan. Versi liyane malah luwih ala. Versi 1 lan versi 7 mbukak wektu digawe, dadi sapa wae sing nduweni ngerti kira-kira kapan UUID kuwi digawe lan bisa mbatesi lingkungan barang sing digawe bareng. Versi 3 lan 5 sengaja digawe deterministik: UUID v5 saka alamat email dudu rahasia sing di-hash, nanging nilai sing bisa diitung sajrone sedetik dening sapa wae sing duwe alamat email sing padha. Gunakake UUID kanggo menehi jeneng sawijining bab. Gunakake generator sandhi, utawa token saka pustaka sing khusus digawe kanggo rahasia, yen nilaine kudu tetep ora dingerteni.

Ngapa milih generator UUID iki?

UUID katon ing ngendi wae sawijining bab kudu dijenengi sadurunge ana sing bisa mesthekake yen jeneng kasebut bebas. Kode aplikasi nyetak kanggo baris sing bakal disisipake, supaya obyek kasebut nduweni identitas sadurunge mlebu menyang database lan klien bisa ngrujuk menyang kasebut nalika proses nulis isih mlaku. Sistem sing disebarake luwih gumantung marang UUID: sawetara layanan sing nulis ing tabel siji, klien seluler offline sing nggawe rekaman ing pesawat, antrean sing kudu ngenali pesen sing wis diproses — ora ana sing bisa ngenteni giliran kanggo entuk penghitung bareng. Versi 5 nyakup kabutuhan sing beda, yaiku pengidentifikasi stabil sing asale saka bab sing wis sampeyan duweni: dokumen sing padha, URL sing padha utawa akun sing padha mesthi dipetakan dadi UUID sing padha, saengga impor bisa mlaku kaping pindho tanpa nduplikasi apa wae. Ing papan liya, UUID mung minangka format sing dijaluk dening sawijining sistem — pengidentifikasi korelasi sing dilebokake ing njero log lan trace, jeneng file sing ora bakal tabrakan nalika unggahan saka sewu pangguna teka ing siji bucket, kunci registri Windows, instrumen pangujian sing kudu katon kaya data asli.

Sawetara watesan sing jujur iku pantes diweruhi. Siji batch padha karo siji versi: nilai ing 'Versi' ditrapake kanggo kabeh sing ana ing jerone, dadi kumpulan v4 lan kumpulan v7 minangka rong batch sing beda. Iki minangka generator, dudu inspektur — nempelake UUID kanggo maca versi utawa stempel wektune dudu bab sing ditindakake dening kaca iki. 'Simpen menyang file' nulis dadi file teks biasa lan dudu CSV utawa JSON. Versi 7 kanthi terang-terangan mbukak kapan UUID kasebut digawe, nganti milidetik, sing minangka pertukaran nyata lan dudu kekurangan, lan versi 1 mbocokake wektu kanthi cara sing padha; yen kuwi dadi masalah kanggo data sampeyan, versi 4 minangka versi sing ora ngandhani apa-apa marang sapa wae. Rong nilai khusus saka standar kasebut dudu versi lan amarga iku dudu pilihan ing 'Versi', nanging sampeyan bisa nyalin saka kene: UUID nil, 00000000-0000-0000-0000-000000000000, lan UUID max, ffffffff-ffff-ffff-ffff-ffffffffffff. Kabeh ing kaca iki tindak RFC 9562, spesifikasi sing ngganti RFC 4122 ing taun 2024, saengga outpute ditampa dening pustaka, database utawa API sing nangani UUID babar pisan. Ing watesan kasebut jaminane kuwat banget: saben pengidentifikasi digawe miturut standar, saka keacakan sing aman sacara kriptografis, ing mesin sampeyan dhewe, lan ora ana wong liya sing bisa ndeleng.

FAQ

Kepiye carane nggawe UUID?

Pilih versi ing 'Versi', atur pira sing sampeyan butuhake ing 'Cacahe pilihan', banjur penet 'Gawe asil'. Kaca kasebut dibukak ing siji pengidentifikasi versi 4, sing dadi kekarepane umume proyek, dadi UUID biasa mung kantun sak klik. Saben nilai katon karo tombol saline dhewe, lan 'Salin Kabeh' njupuk kabeh batch bebarengan.

Apa bedane UUID v4 lan v7?

Versi 4 minangka 122 bit acak sing ora ana strukture babar pisan, dadi rong UUID kasebut ora ana hubungane. Versi 7 ngentekake 48 bit pisanan kanggo milidetik wektu digawe, nambah penghitung lan 62 bit acak, saengga bisa disortir: siji batch metu miturut urutan nggawe. Gunakake v4 nalika pengidentifikasi mung kudu unik, lan v7 yen uga dadi primary key database.

Versi UUID endi sing kudu tak gunakake?

Versi 4 kajaba sampeyan duwe alesan kanggo milih liyane. Pilih versi 7 yen pengidentifikasi dadi primary key lan kinerja sisipan penting, versi 5 yen sampeyan butuh input sing padha supaya mesthi ngasilake pengidentifikasi sing padha, lan versi 1 mung yen sistem sing pengin sampeyan ajak omong pancen njaluk kuwi. Versi 3 yaiku versi 5 kanthi MD5 tinimbang SHA-1, lan ana amarga kompatibilitas.

Apa UUID sing digawe pancen acak lan aman?

Keacakane aman sacara kriptografis: asale saka Web Crypto API browser sampeyan, liwat crypto.randomUUID() utawa crypto.getRandomValues(), dudu saka Math.random(). Aman ing babagan ora bisa ditebak iku beda karo aman ing babagan rahasia — UUID kuwi pengidentifikasi, lan ora kena digunakake minangka sandhi, token sesi utawa kunci API.

Apa aku bisa nggawe UUID sing akeh sekaligus?

Ya, nganti 1000 saben gawe. Atur 'Cacahe pilihan' lan penet 'Gawe asil'; luwih saka seket nilai, asile dadi blok siji sing bisa digulir tinimbang daptar baris sing dawa. 'Salin Kabeh' lan 'Simpen menyang file' njupuk kabeh batch, digabung kaya sing kasebut ing 'Format salin' — siji saben baris, dipisahake koma, utawa diwenehi tandha kutip kanggo ditempel dadi array.

Ngapa v3 lan v5 ngasilake UUID sing padha saben wektu?

Amarga pancen fungsine. Versi 3 lan 5 iku deterministik: kekarone nge-hash namespace lan jeneng sing sampeyan wenehake, dadi input sing padha tansah ngasilake pengidentifikasi sing padha, ing mesin lan basa apa wae. Kuwi nggawe v3 lan v5 migunani kanggo entuk pengidentifikasi stabil saka barang sing wis sampeyan duwe, lan kuwi sebabe 'Cacahe pilihan' didhelikake nalika sampeyan milih kekarone.

Apa sing dimaksud Namespace lan Jeneng, lan namespace sing endi sing kudu dipilih?

Iku minangka rong input sing dadi dhasar etungan UUID versi 3 utawa versi 5. 'Namespace' nerangake jinis jenenge — DNS kanggo jeneng host, URL kanggo alamat, OID lan X.500 kanggo skema direktori kasebut, utawa 'Kustom' yen sampeyan pengin nyedhiyakake UUID namespace dhewe, sing asring dipilih ing jero aplikasi. 'Jeneng' iku string dhewe. Namespace sing beda bakal menehi asil sing beda banget kanggo jeneng sing padha, lan iku fungsine.

Ngapa UUID v7 luwih apik tinimbang v4 kanggo primary key database?

Amarga ing endi nilai kasebut mapan ing indeks. Indeks disimpen miturut urutan sing disortir, lan kunci v4 sing acak mapan ing ngendi wae ing kono, saengga sisipan mbela kaca ing sakabehing wit lan bagean sing ditahan ing memori arang banget dadi bagean sing dibutuhake sawise iku. Kunci v7 diwiwiti nganggo milidetik saiki, saengga sisipan sing terus-terusan mapan bebarengan ing pinggiran mburi indeks, sing minangka tumindake kunci integer sing urut — lan tetep menehi kelonggaran marang layanan apa wae kanggo nyetak pengidentifikasi tanpa takon marang penghitung tengah.

Apa ana rong UUID sing padha?

Sacara prinsip ya, nanging sacara praktik ora, lan iki pantes diweruhi. Ora ana sing verifikasi keunikan: mung ana 2^122 kemungkinan nilai versi 4, udakara 5,3 × 10^36, lan sampeyan butuh udakara 2,7 × 10^18 — siji milyar saben detik suwene 86 taun — sadurunge ana kemungkinan 50% tabrakan siji wae. Jaminane sacara statistik, dudu mutlak, lan iku gumantung ing keacakan sing bener-bener asli, sing dadi alesan kenapa generator iki nggunakake Web Crypto API, dudu fungsi pseudo-acak biasa.

Apa aku bisa nggunakake UUID minangka sandhi, kunci API utawa token sesi?

Ora, lan iki kesalahan sing regane paling larang. UUID versi 4 ora bisa diprediksi, nanging pengidentifikasi ditangani seolah-olah dadi bab sing mbukak: UUID metu ing URL, riwayat browser, log server, header referrer lan analitik. Versi 1 lan 7 uga menehi ngerti kapan digawe, lan versi 3 lan 5 bisa diitung maneh dening sapa wae sing ngerti inpute. Kanggo kabeh sing kudu tetep rahasia, gunakake generator sandhi utawa token saka pustaka sing digawe khusus kanggo rahasia.

Apa UUID v7 ngandhani kapan digawe?

Ya, kanthi jumbuh nganti tingkat milidetik, lan kuwi sengaja, dudu kekurangan — stempel wektu dadi alesan v7 bisa disortir. Baris ing ngisor asil nuduhake wektu sing dienkode ing nilai sing sepisanan saka batch kasebut, dadi sampeyan bisa ngerti apa sing katon kanthi jelas. Versi 1 uga duwe stempel wektu. Yen wektu panggawéan kuwi kalebu apa sing ora arep sampeyan babar, versi 4 dadi versi sing babar pisan ora nyimpen info wektu.

Apa UUID v1 mbukak alamat MAC-ku?

Ora ing kene. Skema asline nggunakake alamat kertu jaringan mesin minangka bagean node, lan saka kono reputasi v1 asale, nanging standar iki uga ngidini pengidentifikasi node acak sing diwenehi tandha bit multicast, lan kuwi sing diasilake dening generator iki. Alamat hardware sampeyan ora tau diwaca lan ora tau metu ing asil.

Apa fungsine Aksara gedhe, Tanpa tandha hubung, Kurung kurawal lan urn:uuid:?

Mung tampilan penyajiane — 128 bit ing mburine persis padha ing kabeh wujud. 'Aksara gedhe' nyetak digit heksadesimal minangka huruf gedhe, 'Tanpa tandha hubung' menehi versi sing ringkes kanthi 32 karakter, 'Kurung kurawal' mbungkus nilaine ing jero tandha { } kaya carane Windows lan .NET nulis GUID, lan urn:uuid: nambah awalan sing ndadekake URN resmi. urn:uuid: mateni loro-lorone saklar liyane nalika diaktifake, amarga standar netepake siji wujud URN lan minangka wujud kanonikal nganggo tandha hubung.