§

UUID जनरेटर — मुफ्त ऑनलाइन UUID v4 जनरेटर

v4 डिफ़ॉल्ट है। v7 जनरेशन समय के अनुसार लेक्सिकोग्राफ़िक रूप से क्रम में आता है और डेटाबेस कुंजियों के लिए सबसे अच्छा विकल्प है।
आउटपुट प्रारूप
§

आउटपुट

    भारतीय SaaS architecture में UUID v4 और v7 default primary key बन चुके हैं — Razorpay का payment_id, Cashfree का order_id, Zoho One के contact-record, और Freshworks ticketing का event UUID सब इसी रूप में। PMJAY (Ayushman Bharat) के HL7 FHIR R4 Bundle resource में हर Patient और Encounter entry को UUID की ज़रूरत होती है। AWS Aurora (Mumbai) और Supabase के Indian deployment पर PlanetScale-शैली sharding के लिए UUID v7 का time-ordered प्रकार recommended है क्योंकि यह B-tree index पर sequential insert रखता है। DigiLocker के document-share token, ONDC (Open Network for Digital Commerce) के order-trace, और CoWIN-शैली vaccination booking ID सब इसी standard पर हैं। ब्राउज़र का crypto.randomUUID() RFC 9562-compliant है।

    UUID क्या है?

    एक UUID (यूनिवर्सली यूनीक आइडेंटिफ़ायर) 128-बिट का मान है जो 36 अक्षरों की एक स्ट्रिंग के रूप में प्रस्तुत होता है, जैसे 550e8400-e29b-41d4-a716-446655440000। प्रारूप और संस्करण-सिमैंटिक्स v1 से v5 तक के लिए RFC 4122 द्वारा, और नए v6, v7 और v8 के लिए RFC 9562 द्वारा परिभाषित हैं। यह टूल v4 (पूरी तरह यादृच्छिक), v1 (टाइमस्टैम्प + यादृच्छिक नोड ID) और v7 (Unix-मिलीसेकंड टाइमस्टैम्प उपसर्ग + यादृच्छिक सफ़िक्स, जनरेशन समय के अनुसार क्रम में) उत्पन्न करता है — सब कुछ आपके ब्राउज़र में, प्लेटफ़ॉर्म की Web Crypto API का उपयोग करते हुए। कोई डेटा सर्वर पर नहीं भेजा जाता।

    UUID जनरेशन कैसे काम करता है?

    हर संस्करण नियतत्व, क्रमणीयता और एन्ट्रॉपी में अलग संतुलन रखता है। टूल आपकी पसंद के आधार पर सही एल्गोरिथ्म चुनता है:

    1. v4 (यादृच्छिक) ब्राउज़र के crypto.randomUUID() को कॉल करता है, जो 122 बिट क्रिप्टोग्राफ़िक यादृच्छिकता लौटाता है, और 6 निश्चित बिट (संस्करण 0100 तथा वैरिएंट 10) सही स्थानों पर सेट किए जाते हैं। टकराव की संभावना खगोलीय रूप से नगण्य है — एक भी डुप्लिकेट को 50% प्रायिकता पर पाने के लिए लगभग 2.71 क्विंटिलियन v4 UUID उत्पन्न करने पड़ेंगे।
    2. v1 (टाइमस्टैम्प + नोड) 60-बिट का ग्रेगोरियन टाइमस्टैम्प (15-10-1582 से 100-नैनोसेकंड टिक) time_low / time_mid / time_hi_and_version में पैक करता है, संस्करण निबल को 0001 पर सेट करता है, वैरिएंट बिट्स के साथ 14-बिट क्लॉक अनुक्रम चुनता है, और 48-बिट यादृच्छिक नोड ID का उपयोग करता है जिसमें मल्टीकास्ट बिट जबरन सेट होता है (RFC 4122 §4.5 स्पष्ट रूप से अनुमति देता है कि जब हार्डवेयर MAC उपलब्ध न हो तो यादृच्छिक नोड ID का उपयोग किया जाए — मल्टीकास्ट बिट इसे ग़ैर-MAC के रूप में चिह्नित करता है)।
    3. v7 (क्रमबद्ध टाइमस्टैम्प), RFC 9562 §5.7 के अनुसार, 48-बिट big-endian Unix-मिलीसेकंड टाइमस्टैम्प रखता है, फिर 4-बिट संस्करण 0111, फिर 12 यादृच्छिक बिट्स, फिर 2-बिट वैरिएंट 10, फिर 62 और यादृच्छिक बिट्स। चूँकि टाइमस्टैम्प सबसे महत्वपूर्ण बिट्स में है, v7 UUID जनरेशन क्रम में लेक्सिकोग्राफ़िक रूप से क्रमबद्ध हो जाते हैं — एक ऐसी विशेषता जो किसी अन्य UUID संस्करण में अतिरिक्त एन्कोडिंग के बिना नहीं मिलती।
    4. सारी यादृच्छिकता crypto.getRandomValues() से आती है, यानी ब्राउज़र का क्रिप्टोग्राफ़िक रूप से सुरक्षित RNG। v1 और v7 दोनों में एक intra-tick monotonic गार्ड शामिल है, ताकि एक ही क्लॉक टिक के भीतर दो लगातार कॉल में दूसरी पहले से ऊपर ही क्रमित रहे — मिलीसेकंड घड़ी से तेज़ चलने वाली बल्क जनरेशन के लिए यह महत्वपूर्ण है।
    5. जनरेशन के बाद फ़ॉर्मेट पाइपलाइन चलती है। आप हाइफन हटा सकते हैं, बड़े अक्षरों में बदल सकते हैं, मान को ब्रेसेस में लपेट सकते हैं ({…} — Microsoft GUID परंपरा), या कच्चे 16 बाइट्स को base64 के रूप में प्रस्तुत कर सकते हैं (22 अक्षर आउटपुट, बिना padding)। base64 मोड अन्य फ़ॉर्मेट विकल्पों को ओवरराइड कर देता है क्योंकि base64 अपने आप में एक अलग प्रतिनिधित्व है।

    इस UUID जनरेटर का उपयोग क्यों करें?

    • कुछ भी आपके ब्राउज़र से बाहर नहीं जाता। Web Crypto API स्थानीय रूप से चलती है; प्रारंभिक दस्तावेज़ लोड के बाद पेज शून्य नेटवर्क अनुरोध करता है। DevTools खोलें, जनरेट क्लिक करें, और Network पैनल खामोश रहेगा।
    • RFC-अनुरूप आउटपुट। v4 RFC 4122 §4.4 का पालन करता है, v1 §4.2 और §4.5 का, और v7 RFC 9562 §5.7 का। संस्करण निबल और वैरिएंट बिट्स वहीं रखे जाते हैं जहाँ मानक कहते हैं — हर UUID संस्करण के मानक रेगेक्स पर खरा उतरता है।
    • डेटाबेस कुंजियों के लिए क्रमबद्ध v7। Postgres, MySQL या SQL Server में क्लस्टर्ड प्राइमरी की के रूप में उपयोग किया गया v7 UUID इंडेक्स पर इन्सर्ट को append-only रखता है — कोई पेज स्प्लिट नहीं, कोई रैंडम I/O नहीं — और साथ ही वैश्विक रूप से अद्वितीय बना रहता है। v4 ऐसा नहीं कर सकता क्योंकि उसके बिट्स यादृच्छिक हैं।
    • रेट-सीमा के बिना थोक जनरेशन। एक बार में 1, 10, 100 या 1,000 UUID उत्पन्न करें। कोई कोटा नहीं, कोई साइन-अप नहीं — टूल आपके टैब में चलता है, इसलिए सीमा आपकी CPU है, किसी विक्रेता का API प्लान नहीं।

    UUID के सामान्य अनुप्रयोग क्या हैं?

    UUID वहाँ काम आते हैं जहाँ किसी प्रणाली को बिना केंद्रीय प्राधिकरण से समन्वय किए वैश्विक रूप से अनूठे पहचानकर्ता की ज़रूरत होती है:

    • डेटाबेस प्राइमरी की। ऑटो-इन्क्रीमेंट पूर्णांक पंक्ति-संख्या उजागर कर देते हैं और शार्डिंग को तोड़ देते हैं। UUID शार्ड्स के बीच स्थिर हैं, क्षेत्रों के बीच मर्ज करने के लिए सुरक्षित हैं, और (v7 के साथ) पेज स्प्लिट के बिना B-tree इन्सर्ट्स को गर्म बनाए रखते हैं। एक विशिष्ट एप्लिकेशन UUID को क्लाइंट-साइड पर बनाता है, उसे INSERT में भेजता है, और कुंजी के लिए कभी भी सर्वर का राउंड-ट्रिप नहीं करना पड़ता।
    • रिक्वेस्ट correlation ID। HTTP मिडलवेयर प्रत्येक आने वाले अनुरोध से एक v4 UUID संलग्न करता है, प्रत्येक span में उसे लॉग करता है, और डाउनस्ट्रीम (अक्सर X-Request-Id हेडर के रूप में) में प्रसारित करता है। जब ग्राहक बग रिपोर्ट करता है, सपोर्ट इंजीनियर ID पेस्ट करता है और पूरा रिक्वेस्ट ट्रेस — सेवाओं और टाइम ज़ोन के पार — बिना किसी अस्पष्टता के सामने आ जाता है।
    • इडेम्पोटेंसी कुंजियाँ। भुगतान API (Stripe, Adyen, Square) Idempotency-Key हेडर स्वीकार करते हैं ताकि पुनः प्रयास किया गया अनुरोध कभी भी ग्राहक से दो बार शुल्क न ले। क्लाइंट-जनरेटेड UUID सुनिश्चित करता है कि कुंजी प्रति तार्किक ऑपरेशन अद्वितीय है, जो ठीक वही अनुबंध है जिसकी ये API माँग करती हैं।

    UUID का उदाहरण कैसा दिखता है?

    Node.js या आधुनिक ब्राउज़र में, एक-पंक्ति crypto.randomUUID() एक नया v4 UUID लौटाती है — उदाहरण के लिए 3f50b5a8-2c54-4b9c-9c1f-3e5c7e2b8d12। इसे रिक्वेस्ट ID या इडेम्पोटेंसी कुंजी के लिए उपयोग करें। जब UUID एक डेटाबेस कॉलम में जा रहा है जो क्लस्टर्ड प्राइमरी की होगा, तो v7 उत्पन्न करें: एक मिलीसेकंड के अंतर पर बने दो v7 मान, जैसे 0190a3b0-7d4f-7c9e-8b21-a4d6f0bd9c11 और 0190a3b0-7d50-7f15-9c4e-72b3e0c1d8a4, जनरेशन क्रम में लेक्सिकोग्राफ़िक रूप से क्रमबद्ध होते हैं। Postgres का uuid टाइप दोनों संस्करणों को समान रूप से संग्रहीत करता है — अंतर इंडेक्स-राइट के समय दिखाई देता है, जहाँ v7 इन्सर्ट B-tree के दाहिनी ओर append होते हैं जबकि v4 इन्सर्ट बिखर जाते हैं और रैंडम I/O को मजबूर करते हैं।

    यह UUID जनरेटर सिर्फ़ एक काम करता है: एक क्लिक को एक या अनेक RFC-अनुरूप पहचानकर्ताओं में बदल देना, उस प्रारूप में जैसा आप चाहते हैं, बिना आपके अनुरोध को किसी सर्वर पर भेजे। एक संस्करण चुनें, एक संख्या चुनें, एक प्रारूप चुनें — उत्पन्न करें, कॉपी करें, आगे बढ़ें।