UUID जनरेटर
अपने ब्राउज़र में तुरंत क्रिप्टोग्राफिकली रैंडम वर्जन 4 UUID जनरेट करें। RFC 9562 के अनुसार Web Crypto API का उपयोग करके एकल या बल्क जनरेशन।
UUID v4 में 122 रैंडम बिट्स होते हैं, जो लगभग 5.3×1036 संभावित मान देते हैं। एकल टकराव के 50% संभावना के लिए, आपको 2.71×1018 UUID जनरेट करने होंगे। एक अरब प्रति सेकंड पर, यह 85 वर्षों का समय लेता है। UUID v4 RFC 9562 में मानकीकृत है (RFC 4122 का उत्तराधिकारी) और आधुनिक वितरित प्रणालियों में सबसे व्यापक रूप से तैनात पहचानकर्ता फॉर्मेट है। यह जनरेटर ब्राउज़र के crypto.randomUUID() API का उपयोग करता है, जो ऑपरेटिंग सिस्टम के CSPRNG द्वारा समर्थित है। एक समय में एक UUID या सैकड़ों जनरेट करें - कोई सर्वर नहीं, कोई साइनअप नहीं।
UUID कैसे जनरेट करें
- जनरेट पर क्लिक करें ताकि तुरंत एक UUID बनाया जा सके।
- एक मात्रा दर्ज करें (जैसे, 10, 100, 1000) और एक साथ कई UUID के लिए जनरेट बल्क पर क्लिक करें।
- सूची में किसी भी UUID पर क्लिक करें ताकि इसे व्यक्तिगत रूप से कॉपी किया जा सके, या पूर्ण सूची को कॉपी करने के लिए कॉपी ऑल का उपयोग करें।
- अपने लक्षित सिस्टम द्वारा आवश्यक आउटपुट फॉर्मेट के रूप में अपरकेस या लोअरकेस का चयन करें।
- एक टेक्स्ट फ़ाइल के रूप में एक्सपोर्ट करने के लिए डाउनलोड का उपयोग करें।
UUID v4 समझाया गया
संरचना और फॉर्मेट
एक UUID 32 हेक्साडेसिमल वर्ण होते हैं जो 8-4-4-4-12 पैटर्न में होते हैं: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx। तीसरे समूह में 4 निश्चित है (संस्करण 4)। चौथे समूह के पहले 1-2 बिट्स को बाइनरी में 10 के रूप में निश्चित किया गया है (RFC 4122 वेरिएंट)। शेष 122 बिट्स रैंडम रूप से जनरेट किए जाते हैं। UUID v4 हर प्रमुख क्लाउड प्रदाता, डेटाबेस सिस्टम, और वेब फ्रेमवर्क में डिफ़ॉल्ट पहचानकर्ता फॉर्मेट के रूप में दिखाई देता है।
टकराव की संभावना
2122 संभावित मानों (~5.3×1036) के साथ, एक उचित CSPRNG से डुप्लिकेट UUID v4 जनरेट करना किसी भी वास्तविक दुनिया के अनुप्रयोग के लिए सांख्यिकीय रूप से नगण्य है। व्यावहारिक उद्देश्यों के लिए UUID v4 टकराव को असंभव माना जाता है।
उदाहरण
जनरेट किया गया UUID v4
f47ac10b-58cc-4372-a567-0e02b2c3d479
विभिन्न प्रतिनिधित्वों में वही UUID
हाइफ़नयुक्त: f47ac10b-58cc-4372-a567-0e02b2c3d479
अपरकेस: F47AC10B-58CC-4372-A567-0E02B2C3D479
बिना हाइफ़न: f47ac10b58cc4372a5670e02b2c3d479
URN फॉर्मेट: urn:uuid:f47ac10b-58cc-4372-a567-0e02b2c3d479
UUID संस्करणों की तुलना
- v1 - समय-आधारित, जनरेटिंग मशीन के MAC पते को शामिल करता है। हार्डवेयर जानकारी को उजागर करता है और अनुक्रमिक पैटर्न होते हैं। सुरक्षा-संवेदनशील पहचानकर्ताओं के लिए बचें।
- v3 / v5 - नाम-आधारित और निर्धारक: वही इनपुट नामस्थान + नाम हमेशा वही UUID उत्पन्न करता है। पुनरुत्पादित पहचानकर्ताओं के लिए उपयोगी।
- v4 - पूरी तरह से रैंडम (122 बिट्स)। कोई अंतर्निहित जानकारी नहीं, कोई अनुक्रमिक पैटर्न नहीं। एप्लिकेशन-जनित पहचानकर्ताओं के लिए सबसे व्यापक रूप से उपयोग किया जाने वाला प्रकार।
- v7 - समय-क्रमबद्ध रैंडम UUIDs (RFC 9562)। पहले 48 बिट्स एक यूनिक्स मिलीसेकंड टाइमस्टैम्प हैं, जिससे v7 UUIDs को निर्माण समय के अनुसार क्रमबद्ध किया जा सकता है। v4 की तुलना में डेटाबेस B-tree इंडेक्स प्रदर्शन के लिए बेहतर।
सामान्य उपयोग के मामले
- प्राथमिक कुंजी PostgreSQL (
uuidप्रकार), MySQL (VARCHAR(36)), और MongoDB में - वितरित प्रणाली आईडी जहाँ कई सेवाएँ स्वतंत्र रूप से रिकॉर्ड बनाती हैं बिना केंद्रीय अनुक्रम के
- API संसाधन पहचानकर्ता जो सार्वजनिक URLs में उजागर होते हैं (enumeration हमलों को सक्षम करने वाले अनुक्रमिक पूर्णांकों की तुलना में अधिक सुरक्षित)
- फाइल नाम अपलोड किए गए संपत्तियों के लिए टकराव को रोकने के लिए
- Idempotency कुंजी API अनुरोधों के लिए पुनः प्रयास पर डुप्लिकेट प्रोसेसिंग को रोकने के लिए
सुरक्षित रैंडम पासवर्ड जनरेट करने के लिए (पहचानकर्ताओं के बजाय), पासवर्ड जनरेटर का उपयोग करें। समय-आधारित पहचानकर्ताओं के लिए जो डेटाबेस-क्रमबद्ध भी हैं, अपने डेटाबेस ड्राइवर या ORM में UUID v7 समर्थन की तलाश करें।
अक्सर पूछे जाने वाले सवाल
व्यवहार में वर्जन 4 UUID कितना अद्वितीय है?
UUID v4 में 122 बिट्स की रैंडमनेस होती है, जो लगभग 5.3×1036 संभावित मान देती है। एकल टकराव के 50% अवसर के लिए, आपको 2.71×1018 UUID जनरेट करने होंगे - एक अरब प्रति सेकंड पर, यह लगभग 85 वर्षों का समय लेगा। सभी व्यावहारिक अनुप्रयोगों के लिए, UUID v4 टकराव को असंभव माना जाता है।
क्या यहाँ जनरेट किए गए UUID क्रिप्टोग्राफिक रूप से सुरक्षित हैं?
हाँ। यह उपकरण crypto.randomUUID() (या crypto.getRandomValues() के रूप में बैकअप) का उपयोग करता है, जो ऑपरेटिंग सिस्टम के CSPRNG द्वारा समर्थित है। जनरेट किए गए UUID सुरक्षा टोकन, सत्र पहचानकर्ताओं और अन्य सुरक्षा-संवेदनशील संदर्भों के लिए उपयुक्त हैं।
क्या मुझे डेटाबेस प्राथमिक कुंजी के रूप में UUID या ऑटो-इंक्रीमेंट पूर्णांक का उपयोग करना चाहिए?
दोनों के अपने-अपने फायदे और नुकसान हैं। UUID v4 वितरित प्रणालियों में अच्छी तरह से काम करता है जहाँ कई नोड्स स्वतंत्र रूप से आईडी जनरेट करते हैं, सार्वजनिक URL में आईडी को अप्रत्याशित बनाता है (enumeration हमलों को रोकता है), और डेटाबेस विलय को सरल बनाता है। ऑटो-इंक्रीमेंट पूर्णांक सरल होते हैं, छोटे होते हैं (4-8 बाइट बनाम 16 बाइट), और अनुक्रमिक इनसर्ट के लिए बेहतर B-tree इंडेक्स प्रदर्शन होता है। UUID v7 एक मध्य मार्ग प्रदान करता है: रैंडम UUID जो समय के अनुसार क्रमबद्ध भी होते हैं।
UUID का फॉर्मेट क्या होता है?
एक UUID 32 लोअरकेस हेक्साडेसिमल वर्ण होते हैं जो हाइफन के साथ 8-4-4-4-12 पैटर्न में समूहित होते हैं: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx। हाइफन के साथ कुल स्ट्रिंग लंबाई 36 वर्ण होती है। PostgreSQL UUIDs को एक स्वदेशी 16-बाइट बाइनरी प्रकार के रूप में स्टोर करता है; MySQL और SQLite आमतौर पर 36-वर्ण स्ट्रिंग को स्टोर करते हैं।
क्या मैं ऑफ़लाइन UUID जनरेट कर सकता हूँ?
हाँ। एक बार जब यह पृष्ठ लोड हो जाता है, UUID जनरेशन पूरी तरह से स्थानीय JavaScript और ब्राउज़र के अंतर्निहित crypto API का उपयोग करके चलती है। जनरेशन के दौरान कोई नेटवर्क अनुरोध नहीं किए जाते हैं। प्रारंभिक पृष्ठ लोड के बाद उपकरण ऑफ़लाइन काम करता है।