← सभी टूल

UUID जेनरेटर (v4 GUID)

ब्राउज़र में तुरंत रैंडम v4 UUID (GUID) जेनरेट करें। 128-बिट UUID क्या है, संस्करणों में अंतर, टकराव की संभावना और उपयोग के समय — सब जानें।

UUID असल में क्या होता है

UUID, जिसका पूरा रूप है Universally Unique Identifier, एक 128-बिट मान है जो किसी चीज़ को बिना पहले किसी से अनुमति मांगे लेबल करने के लिए इस्तेमाल होता है। आप इसे GUID, यानी Globally Unique Identifier, भी कहा जाते सुन सकते हैं, जो बस वह नाम है जो Microsoft ने Windows और .NET की दुनिया के भीतर इसी विचार को दिया। ये दोनों शब्द लगभग हर मायने रखने वाले मामले में उसी 128-बिट संख्या का वर्णन करते हैं, इसलिए जब कोई सहकर्मी GUID कहता है और आप UUID, तो आप लगभग हमेशा ठीक एक ही चीज़ की बात कर रहे होते हैं।

वे 128 बिट सामान्यतः 32 हेक्साडेसिमल अंकों के रूप में लिखे जाते हैं जिन्हें हाइफ़न के ज़रिए पांच समूहों में, 8-4-4-12 पैटर्न में, बांटा जाता है। एक विशिष्ट मान कुछ इस तरह दिखता है 123e4567-e89b-12d3-a456-426614174000। हाइफ़न का अपना कोई अर्थ नहीं होता; वे सिर्फ़ इसलिए मौजूद हैं ताकि इंसान बिना अपनी जगह खोए मान पढ़ सके। हर अक्षर 0 से f तक का एक हेक्स अंक है, इसीलिए UUID रोज़मर्रा की किसी संख्या से अधिक सघन महसूस होता है, हालांकि भीतर से यह बस एक बहुत बड़ी पूर्णांक संख्या है।

गहरे इंडिगो पृष्ठभूमि पर एक अद्वितीय 128-बिट पहचानकर्ता को दर्शाता अमूर्त चमकता हेक्साडेसिमल टोकन
UUID एक 128-बिट संख्या है, जो पांच हाइफ़न-विभाजित समूहों में 32 हेक्स अंकों के रूप में लिखी जाती है।

संस्करण, और v4 क्यों जीतता है

मानक कई संस्करणों को परिभाषित करता है, और वे इस बात में भिन्न हैं कि बिट कैसे भरे जाते हैं। संस्करण 1 समय-आधारित है: यह मौजूदा टाइमस्टैम्प और मशीन के नेटवर्क MAC पते को आपस में बुन देता है। इससे v1 मान बनने के समय के अनुसार क्रमबद्ध हो जाते हैं, पर यह इस बारे में भी जानकारी लीक करता है कि वे कहां और लगभग कब बने, जिसका हमेशा स्वागत नहीं होता। संस्करण 3 और 5 नाम-आधारित हैं, जो किसी नेमस्पेस और एक नाम को हैश करते हैं ताकि एक ही इनपुट हमेशा वही पहचानकर्ता दे।

संस्करण 4 पूरी तरह अलग रास्ता अपनाता है। यह लगभग शुद्ध यादृच्छिकता है। 128 बिटों में से छह संस्करण और संस्करण-भेद को चिह्नित करने के लिए सुरक्षित रखे जाते हैं, जिससे 122 बिट यादृच्छिक डेटा से भरे जाने के लिए बचते हैं। न कोई टाइमस्टैम्प, न MAC पता, न नेमस्पेस, बस शोर। यही ठीक वह कारण है जिससे ज़्यादातर जनरेटर, इस वाले समेत, डिफ़ॉल्ट रूप से v4 बनाते हैं। यह डिवाइस या बनने के क्षण के बारे में कुछ भी उजागर नहीं करता, और इसे बनाने वाले पक्षों के बीच किसी समन्वय की ज़रूरत नहीं होती। इस पेज का टूल पूरी तरह आपके ब्राउज़र में चलता है, इसलिए यादृच्छिक मान कभी आपकी मशीन से बाहर नहीं जाते।

टकराव वास्तव में कितना असंभव है

एक वाजिब चिंता यह है कि दो यादृच्छिक UUID किसी दिन एक जैसे हो सकते हैं। 122 यादृच्छिक बिटों के साथ, संभावित v4 मानों का दायरा 2 की घात 122 है, जो मोटे तौर पर 5.3 के बाद 36 शून्य है। इसे मानवीय शब्दों में रखें तो, किसी एक डुप्लिकेट की संभावना मापने योग्य किसी स्तर तक चढ़ने से पहले आपको कई दशकों तक हर सेकंड अरबों UUID बनाने पड़ेंगे। मानक स्वयं किसी टकराव की संभावना को शून्य के इतना क़रीब बताता है कि वह नगण्य है। व्यवहार में टीमें v4 को अद्वितीय मानकर आगे बढ़ जाती हैं, और वे ऐसा करने में सही हैं।

सियान और सुनहरे उभार के साथ एक विशाल गहरे अंतरिक्ष में तैरती असंख्य भिन्न चमकती चाबियां जिनमें कोई डुप्लिकेट नहीं
संभावित v4 मानों का भंडार इतना विशाल है कि टकराव व्यावहारिक रूप से असंभव हैं।

डेवलपर इन्हें कहां काम में लाते हैं

चूंकि अद्वितीयता के लिए किसी केंद्रीय प्राधिकरण की ज़रूरत नहीं, UUID उन जगहों पर चमकते हैं जहां समन्वय महंगा या असंभव होता है। वे डेटाबेस प्राइमरी कुंजियों के लिए स्वाभाविक रूप से सटीक बैठते हैं, ख़ासकर जब कई सेवाएं अलग-अलग पंक्तियां डालती हैं और आप अगली संख्या के लिए किसी साझा काउंटर से पूछने हेतु रुक नहीं सकते। वितरित सिस्टम में, ग्रह के विपरीत छोरों पर बैठे दो नोड एक ही क्षण में पहचानकर्ता ढाल सकते हैं और फिर भी कभी नहीं टकराएंगे। वे API आइडेम्पोटेंसी कुंजियों को भी संचालित करते हैं, जहां क्लाइंट किसी अनुरोध से एक UUID जोड़ देता है ताकि नेटवर्क के पुनः प्रयास करने पर सर्वर सुरक्षित रूप से डुप्लिकेट को अनदेखा कर सके। सेशन टोकन, फ़ाइल नाम, इवेंट ID, और संदेश कुंजियां, सब इसी गुण पर निर्भर रहती हैं।

UUID बनाम ऑटो-इंक्रीमेंट ID

क्लासिक विकल्प है ऑटो-इंक्रीमेंट पूर्णांक: 1, 2, 3, और इसी तरह आगे। क्रमिक ID सघन होते हैं, स्वाभाविक रूप से क्रमबद्ध होते हैं, और पढ़ने में आसान होते हैं, पर इनके असली नुकसान भी हैं। ये उजागर कर देते हैं कि कितने रिकॉर्ड मौजूद हैं और बाहरी लोगों को पड़ोसी मानों का अनुमान लगाने देते हैं, और ये हर इन्सर्ट को एक अकेले काउंटर से गुज़ारने पर मजबूर करते हैं, जो तब अड़चन बन जाता है जब आप डेटाबेस को शार्ड करते हैं या कई स्रोतों से डेटा मिलाते हैं। UUID इन समस्याओं को इस तरह हल करते हैं कि कोई भी पक्ष स्वतंत्र रूप से एक कुंजी बना सकता है और मात्रा या क्रम के बारे में कुछ नहीं उजागर करता। इसका सौदा है आकार और इंडेक्स में थोड़ी कम स्थानीयता। उन सिस्टमों के लिए जो बड़े पैमाने पर फैलते हैं या जिन्हें अपने आंतरिक तंत्र छिपाने ही होते हैं, यह सौदा आमतौर पर सार्थक है। आप इस और इसी तरह की उपयोगिताओं को हमारे सभी जनरेटर संग्रह के ज़रिए खोज सकते हैं, या संबंधित बुनियादी घटकों के लिए डेवलपर टूल के व्यापक समूह को देख सकते हैं।

अक्सर पूछे जाने वाले प्रश्न

क्या GUID और UUID एक ही चीज़ हैं?

रोज़मर्रा के मक़सद के लिए, हां। GUID उसी 128-बिट पहचानकर्ता के लिए Microsoft का नाम है। एकमात्र असली अंतर कुछ Windows सिस्टमों में कच्चे बाइनरी रूप में बाइट का क्रम है; स्ट्रिंग रूप में ये एक जैसे और परस्पर बदले जाने योग्य हैं।

यह टूल कौन-सा UUID संस्करण बनाता है?

यह संस्करण 4 बनाता है, यानी यादृच्छिक रूप। इसके 128 बिटों में से 122 यादृच्छिक डेटा से भरे होते हैं, जिससे हर मान का दोहराया जाना बेहद असंभव हो जाता है और इसका मतलब यह है कि इसमें कोई टाइमस्टैम्प या डिवाइस की जानकारी नहीं होती।

क्या दो UUID कभी एक जैसे हो सकते हैं?

सिद्धांत में संभावना ठीक शून्य नहीं है, पर करीब 5.3 गुना 10 की घात 36 संभावित v4 मानों के साथ यह इतनी छोटी है कि इसे नगण्य माना जाता है। किसी टकराव की संभावना बनने से पहले आपको इनकी खगोलीय मात्रा बनानी पड़ेगी।

ऑटो-इंक्रीमेंट संख्या के बजाय UUID क्यों इस्तेमाल करें?

UUID किसी भी सेवा द्वारा बिना किसी साझा काउंटर के स्वतंत्र रूप से बनाए जा सकते हैं, वे रिकॉर्ड की गिनती या क्रम उजागर नहीं करते, और कई स्रोतों से डेटा मिलाने को आसान बना देते हैं। ऑटो-इंक्रीमेंट ID छोटे होते हैं पर बड़े पैमाने पर अड़चन बन जाते हैं और जानकारी लीक करते हैं।

क्या UUID सर्वर पर बनाए जाते हैं?

नहीं। यह टूल पूरी तरह आपके ब्राउज़र में चलता है, इसलिए यादृच्छिक मान स्थानीय रूप से बनते हैं और कभी कहीं नहीं भेजे जाते। इससे इन्हें उन कुंजियों और टोकनों के लिए इस्तेमाल करना सुरक्षित हो जाता है जिन्हें आप निजी रखना चाहते हैं।

हाइफ़न का पैटर्न क्या मायने रखता है?

8-4-4-4-12 समूहीकरण बस पढ़ने में आसानी का एक तरीक़ा है। हाइफ़न कोई डेटा नहीं ढोते; वे 32 हेक्स अंकों को टुकड़ों में बांट देते हैं ताकि लोग मानों को अधिक आसानी से देख और तुलना कर सकें।