UUID क्या है?
UUID 128-बिट का पहचानकर्ता है जो 36 हेक्साडेसिमल कैरेक्टर (8-4-4-4-12) में लिखा जाता है और बिना समन्वय कहीं भी जनरेट होकर भी व्यवहार में अद्वितीय रहता है। RFC 9562 वर्ज़न परिभाषित करता है: v4 रैंडम है, v7 समय-क्रमित है इसलिए निर्माण समय से सॉर्ट होता है और डेटाबेस में अच्छी तरह इंडेक्स होता है। ULID टाइमस्टैम्प और रैंडमनेस से बना 26-कैरेक्टर का लेक्सिकोग्राफ़िक रूप से सॉर्ट होने वाला विकल्प है।
गाइड पढ़ें: UUID क्या है? v4 बनाम v7, UUID बनाम GUID और ULID
UUID जनरेटर कैसे इस्तेमाल करें
- version, संख्या और फ़ॉर्मैट चुनें, फिर Generate पर क्लिक करें।
- सूची कॉपी करें या टेक्स्ट फ़ाइल के रूप में डाउनलोड करें।
- किसी मौजूदा UUID को परखने के लिए उसे validate बॉक्स में पेस्ट करें और "Validate / decode" पर क्लिक करें।
UUID जनरेटर की खूबियाँ
- UUID v4 (रैंडम) और v7 (समय-क्रमित, RFC 9562), साथ में Nil और Max
- क्रिप्टोग्राफ़िक रूप से सुरक्षित रैंडमनेस से एक साथ 1–1000 बनाएँ
- फ़ॉर्मैट: लोअरकेस, UPPERCASE, {braces}, बिना डैश, urn:uuid:, Base64
- किसी भी UUID को वैलिडेट करें और version, variant व अंतर्निहित टाइमस्टैम्प डिकोड करें
- एक ही मिलीसेकंड में बने v7 ID भी सख़्त क्रम में रहते हैं
- नए बैच के लिए दोबारा जनरेट करें
UUID जनरेटर का उदाहरण
एक v7 UUID को डिकोड करना
इनपुट:
0190f7a4-3f9e-7c2b-9d3a-5e1b2c3d4e5fआउटपुट:
Valid ✓ · Version: v7 — Unix epoch time-ordered · Variant: RFC 4122 / 9562 · Timestamp: 2024-07-28T04:40:54.942Zउदाहरण वाला v7 UUID
भाग 1:0190f7a4-3f9e-
- 148-बिट Unix मिलीसेकंड टाइमस्टैम्पhex अंक 1–12, big-endian: डिकोड की Timestamp लाइन। यह सबसे पहले आता है, इसलिए v7 ID बनने के समय के क्रम में सॉर्ट होते हैं।
2024-07-28T04:40:54.942Z - 2version (hex अंक 13)
v7 — Unix epoch time-ordered - 3
rand_a, 12 बिटआम तौर पर रैंडम (यहाँc2b)। एक बैच में यह जनरेटर इसकी जगह काउंटर लिखता है जो हर मिलीसेकंड 0 से शुरू होता है (…-7000-,-7001-…), ताकि ID क्रम में रहें। - 4variant (hex अंक 17)8–b का मतलब RFC 4122 / 9562। सिर्फ़ ऊपरी 2 बिट variant हैं; निचले 2 बिट
rand_bके हैं।RFC 4122 / 9562 - 5
rand_b, 62 रैंडम बिटये 15 hex अंक (60 बिट) और variant अंक के निचले 2 बिट।
v4 UUID में version अंक और variant के ऊपरी 2 बिट को छोड़कर सब रैंडम है (122 बिट), इसलिए v4 ID बनने के समय से सॉर्ट नहीं होते।
UUID जनरेटर के बारे में अक्सर पूछे जाने वाले सवाल
UUID v4 और v7 में क्या अंतर है?
v4 में 122 बिट रैंडमनेस होती है — अनुमान लगाना मुश्किल, पर बिना क्रम के। v7 (RFC 9562) 48-बिट Unix मिलीसेकंड टाइमस्टैम्प से शुरू होता है, इसलिए ID बनने के समय के क्रम में सॉर्ट होते हैं, जिससे डेटाबेस index कॉम्पैक्ट रहते हैं।
क्या रैंडमनेस सुरक्षित है?
हाँ। ID ब्राउज़र के crypto.getRandomValues से बनते हैं — वही स्रोत जो keys और टोकन के लिए इस्तेमाल होता है।
क्या मैं मौजूदा UUID डिकोड कर सकता हूँ?
इसे validate बॉक्स में पेस्ट करें और "Validate / decode" पर क्लिक करें, ताकि उसका version, variant और v1/v6/v7 के लिए अंतर्निहित टाइमस्टैम्प (v1/v6 के लिए clock sequence और node भी) दिख सके।
कौन-कौन से फ़ॉर्मैट उपलब्ध हैं?
लोअरकेस, UPPERCASE, {braces} (Microsoft शैली), बिना डैश, urn:uuid: और Base64।
एक बार में कितने बना सकता हूँ?
हर क्लिक पर 1000 तक; नए बैच के लिए Regenerate इस्तेमाल करें।
तकनीकी नोट्स
v4 crypto.getRandomValues से 16 बाइट लेकर version और variant बिट overwrite करता है, 122 रैंडम बिट बचते हैं। v7 पहले छह बाइट में 48-बिट Unix मिलीसेकंड टाइमस्टैम्प big-endian लिखता है और एक बैच में rand_a की जगह 12-बिट काउंटर रखता है जो हर मिलीसेकंड 0 से शुरू होता है (RFC 9562 §6.2): एक मिलीसेकंड के लगातार ID तीसरे समूह में एक-एक बढ़ते हैं (…-7000-, -7001-…) और सिर्फ़ rand_b के 62 बिट रैंडम हैं।
डिकोडिंग version को hex अंक 13 और variant को अंक 17 से पढ़ती है (0–7 NCS, 8–b RFC 4122/9562, c–d Microsoft, e–f reserved); RFC variant के बाहर version लेबल अर्थहीन बताया जाता है। v1/v6 टाइमस्टैम्प BigInt से बनते हैं: 1582-10-15 से 100-ns अंतराल (offset 0x01B21DD213814000), और node का multicast बिट रैंडम node को MAC पते से अलग करता है। Base64 '==' padding वाली standard alphabet है, base64url नहीं; v3/v5 नहीं बनते।
संदर्भ
- RFC 9562: Universally Unique IDentifiers (UUIDs)वर्तमान UUID मानक: वर्ज़न 1–8, समय-क्रमित v7 और 128 बिट के लेआउट सहित।