UUID जनरेटर

अपने ब्राउज़र के क्रिप्टोग्राफ़िक रैंडम नंबर जनरेटर से रैंडम UUID v4 आइडेंटिफ़ायर जनरेट करें। एक बार में एक या सौ बनाएं, कहीं कुछ नहीं भेजा जाता।

अपरकेस
हाइफ़न हटाएं

UUID v4 क्या है?

128 बिट रैंडमनेस, एक स्टैंडर्ड आइडेंटिफ़ायर के रूप में फ़ॉर्मैट की गई।

एक UUID v4 122 रैंडम बिट्स होते हैं (बाकी 6 वर्शन और वेरिएंट दिखाने के लिए फ़िक्स्ड होते हैं), जो लगभग 5.3 अनडेसिलियन संभावित वैल्यू देते हैं। कोलिज़न इतने असंभव हैं कि डेटाबेस प्राइमरी की, रिक्वेस्ट आईडी, या फ़ाइल नामों के लिए ये कोई व्यावहारिक चिंता नहीं हैं।

सामान्य उपयोग

डेटाबेस प्राइमरी की जो रो काउंट लीक नहीं करतीं, API रिक्वेस्ट के लिए आइडेंपोटेंसी कीज़, सेवाओं के बीच लॉग ट्रेस करने के लिए कोरिलेशन आईडी, और यूनीक फ़ाइल या सेशन नाम जो अलग-अलग मशीनों पर एक ही समय में जनरेट होने पर भी नहीं टकराएंगे।

यह कैसे काम करता है

हर ID ब्राउज़र के बिल्ट-इन जनरेटर crypto.randomUUID() से आती है। इसके अंदर, यह ऑपरेटिंग सिस्टम के क्रिप्टोग्राफ़िकली सिक्योर रैंडम सोर्स (वही जो TLS कीज़ जनरेट करता है) से 128 बिट्स लेता है, फिर उनमें से 6 बिट्स को फ़िक्स्ड वैल्यू से स्टैंप करता है: वर्शन निबल 4 बन जाता है और वेरिएंट बिट्स 10 बन जाते हैं। इसी वजह से यहाँ हर UUID के तीसरे ग्रुप की शुरुआत में 4 होता है और चौथे ग्रुप की शुरुआत में 8, 9, a, या b होता है। बाकी बचे 122 बिट्स शुद्ध रैंडमनेस हैं, जिसकी वजह से प्रैक्टिस में कोलिज़न कोई मुद्दा नहीं रह जाता।

कितना गैर-मुद्दा? 2^122 संभावित v4 UUID हैं, लगभग 5.3 अनडेसिलियन। बर्थडे-प्रॉब्लम का गणित कहता है कि आपको एक कोलिज़न की संभावना दस लाख में एक तक पहुँचने से पहले लगभग 103 ट्रिलियन UUID जनरेट करने होंगे। आपके सिस्टम कभी भी जितनी भी ID बनाएंगे, वह इस संख्या के सामने बस एक राउंडिंग एरर है, इसी वजह से v4 UUID किसी भी मशीन पर बिना किसी कोऑर्डिनेशन के जनरेट करना सुरक्षित है।

जनरेशन बस एक ब्राउज़र API कॉल है, इसलिए न तो सर्वर से कुछ रिक्वेस्ट किया जाता है और न ही उसे कुछ भेजा जाता है: डेवलपर टूल्स का नेटवर्क टैब खोलें, Generate पर क्लिक करें, और देखें कि कुछ नहीं होता। अपरकेस और बिना-हाइफ़न टॉगल केवल पहले से जनरेट हुई ID को दोबारा फ़ॉर्मैट करते हैं; अंदरूनी वैल्यू नहीं बदलतीं।

एक व्यावहारिक बात: v4 UUID जानबूझकर अनऑर्डर्ड होते हैं, इसलिए डेटाबेस प्राइमरी की के रूप में ये इंसर्ट को पूरे इंडेक्स में बिखेर देते हैं। अगर आपको क्रिएशन टाइम के हिसाब से सॉर्ट होने वाली ID चाहिए, तो UUID v7 देखें, जो ऊँचे बिट्स में एक टाइमस्टैम्प डालता है। बाकी हर चीज़ के लिए (रिक्वेस्ट ID, फ़ाइल नाम, कोरिलेशन टोकन), रैंडम v4 बिल्कुल सही है।