Ano ang isang UUID?
Ang UUID (Universally Unique Identifier) ay isang 128-bit na halaga na na-render bilang isang 36-karakter na string tulad ng 550e8400-e29b-41d4-a716-446655440000. Ang format at semantika ng bersyon ay tinukoy ng RFC 4122 para sa v1 hanggang v5, at ng RFC 9562 para sa mas bagong v6, v7, at v8 na mga bersyon. Ang tool na ito ay gumagawa ng v4 (purong random), v1 (timestamp kasama ang random node ID), at v7 (Unix-millisecond timestamp prefix kasama ang random suffix, nai-sort ayon sa oras ng paglikha) — lahat sa iyong browser, gamit ang Web Crypto API ng platform. Walang data na ipinapadala sa isang server.
Paano gumagana ang paglikha ng UUID?
Ang bawat bersyon ay nagpapalit ng determinismo, sortability, at entropy nang iba. Pinipili ng tool ang tamang algorithm batay sa iyong pagpili:
- v4 (random) ay tumatawag ng
crypto.randomUUID()ng browser, na nagbabalik ng 122 bits ng cryptographic randomness na may 6 fixed bits (bersyon0100at ang10na variant) na nakatakda sa tamang posisyon. Ang mga collision ay astronomically hindi malamang — kailangan mong gumawa ng humigit-kumulang 2.71 quintillion na v4 UUID para matamaan ang isang duplicate na may 50% na posibilidad. - v1 (timestamp + node) ay naglalagay ng isang 60-bit na Gregorian timestamp (100-nanosecond na tik mula 1582-10-15) sa
time_low/time_mid/time_hi_and_version, itinatakda ang version nibble sa0001, pumipili ng 14-bit na clock sequence na may mga variant bit na nakatakda, at gumagamit ng random na 48-bit na node ID na may multicast bit na pinilit na naka-on (pinahihintulutan ng RFC 4122 §4.5 ang isang random na node ID kapag walang available na hardware MAC — tinatag ng multicast bit ito bilang hindi-MAC). - v7 (nai-sort na timestamp), per RFC 9562 §5.7, ay naglalagay ng 48-bit na big-endian Unix-millisecond timestamp, pagkatapos ang 4-bit na bersyon
0111, pagkatapos 12 random na bits, pagkatapos ang 2-bit na variant10, pagkatapos 62 pang random na bits. Dahil ang timestamp ay nasa pinaka-significant na bits, ang mga v7 UUID ay nag-uuri nang lexicographically sa pagkakasunod ng paglikha — isang katangiang wala pang ibang bersyon ng UUID na inaalok nang walang karagdagang encoding. - Ang lahat ng randomness ay nagmumula sa
crypto.getRandomValues(), ang cryptographically-secure RNG ng browser. Ang parehong v1 at v7 ay may kasamang intra-tick monotonic guard kaya ang dalawang magkakasunod na tawag sa loob ng parehong clock tick ay nag-uuri pa rin ng pangalawa sa itaas ng una — mahalaga para sa mga bulk generation run na nakikipagtakbuhan sa millisecond clock. - Ang format pipeline ay tumatakbo pagkatapos ng paglikha. Maaari mong alisin ang mga hyphen, lumipat sa uppercase, balutin ang halaga sa mga brace (
{…}— ang konbensyon ng Microsoft GUID), o i-render ang raw na 16 byte bilang base64 (22-karakter na output, walang padding). Ang Base64 mode ay nino-override ang iba pang mga opsyon ng format dahil ang base64 ay sariling representasyon nito.
Bakit gamitin ang UUID generator na ito?
- Walang lumalabas sa iyong browser. Ang Web Crypto API ay tumatakbo nang lokal; ang page ay gumagawa ng zero network request pagkatapos ng paunang pag-load ng dokumento. Buksan ang DevTools, mag-click ng Gumawa, at ang Network panel ay nananatiling tahimik.
- RFC-correct na output. Ang v4 ay sumusunod sa RFC 4122 §4.4, ang v1 ay sumusunod sa §4.2 at §4.5, at ang v7 ay sumusunod sa RFC 9562 §5.7. Ang version nibble at variant bits ay inilalagay kung saan sinasabi ng mga pamantayan na sila dapat naroroon — ang bawat UUID ay nava-validate laban sa canonical na version regex.
- Nai-sort na v7 para sa mga database key. Ang isang v7 UUID na ginagamit bilang clustered primary key sa Postgres, MySQL, o SQL Server ay nagpapanatiling append-only ang mga insert sa index — walang page split, walang random I/O — habang nananatiling globally unique. Hindi ito magagawa ng v4 dahil ang mga bits nito ay random.
- Bulk generation nang walang rate limit. Gumawa ng 1, 10, 100, o 1,000 UUID nang sabay-sabay. Walang quota at walang pag-sign-up — ang tool ay tumatakbo sa iyong tab, kaya ang limitasyon ay ang iyong CPU, hindi ang API tier ng isang vendor.
Ano ang mga karaniwang aplikasyon ng mga UUID?
Lumalabas ang mga UUID kahit saan na kailangan ng isang sistema ng globally-unique na identifier nang hindi nagko-coordinate sa isang sentral na awtoridad:
- Mga primary key ng database. Ang mga auto-incrementing integer ay nagbubunyag ng bilang ng row at nagbabago ng sharding. Ang mga UUID ay matatag sa mga shard, ligtas na i-merge sa mga rehiyon, at (gamit ang v7) nagpapanatiling mainit ang mga B-tree insert nang walang page split. Karaniwang gumagawa ang isang application ng UUID sa client-side, ipinapadala ito sa insert, at hindi na kailangang round-trip ang server para sa key.
- Mga request correlation ID. Ang HTTP middleware ay nag-aatach ng v4 UUID sa bawat papasok na request, inilalagay ito sa log sa bawat span, at ipinapalaganap ito sa downstream (kadalasan bilang `X-Request-Id` header). Kapag nag-ulat ng bug ang isang customer, ini-paste ng support engineer ang ID at ang buong request trace ay lumalabas — sa mga serbisyo at time zone — nang walang kalabuan.
- Mga idempotency key. Tinatanggap ng mga payment API (Stripe, Adyen, Square) ang isang `Idempotency-Key` header para ang isang na-retry na request ay hindi kailanman mag-charge sa customer nang dalawang beses. Ang isang client-generated UUID ay ginagarantiyahan na ang key ay natatangi bawat logical na operasyon, na siyang kontrata na kinakailangan ng mga API na iyon.
Ano ang hitsura ng isang halimbawa ng UUID?
Sa Node.js o isang modernong browser, ang one-liner na crypto.randomUUID() ay nagbabalik ng sariwang v4 UUID — halimbawa 3f50b5a8-2c54-4b9c-9c1f-3e5c7e2b8d12. Gamitin iyon para sa isang request ID o idempotency key. Kapag ang UUID ay pupunta sa isang database column na magiging clustered primary key, gumawa ng v7 sa halip: ang dalawang v7 na halaga na ginawa nang isang millisecond nang magkahiwalay, tulad ng 0190a3b0-7d4f-7c9e-8b21-a4d6f0bd9c11 at 0190a3b0-7d50-7f15-9c4e-72b3e0c1d8a4, ay nag-uuri nang lexicographically sa pagkakasunod ng paglikha. Ang `uuid` na uri ng Postgres ay nag-iimbak ng parehong bersyon nang magkapareho — ang pagkakaiba ay lumalabas sa oras ng pagsulat ng index, kung saan ang mga v7 insert ay nagdadagdag sa kanan ng B-tree habang ang mga v4 insert ay nagkakalat at nagpupuwersa ng random I/O.
Ang UUID Generator na ito ay gumagawa ng isang trabaho: gawing isa o maraming RFC-compliant na identifier ang isang click, na na-format sa paraang kailangan mo, nang hindi ipinapadala ang iyong kahilingan sa isang server. Pumili ng bersyon, pumili ng bilang, pumili ng format — gumawa, kopyahin, at magpatuloy.