JavaScript में GUID/UUID जनरेशन गाइड: सिद्धांत से कोड तक

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

आपको GUID/UUID की आवश्यकता क्यों है और यह आपकी सोच से कहीं अधिक सरल क्यों है?

\n\n

क्या आपने कभी सोचा है कि वेबसाइटें और ऐप्लिकेशन डेटाबेस में एक रिकॉर्ड को दूसरे से कैसे अलग करते हैं? या आपका ब्राउज़र कैसे याद रखता है कि आपने अपनी कार्ट में क्या रखा है, न कि आपके पड़ोसी ने? यह रहस्य अक्सर एक छोटी लेकिन शक्तिशाली स्ट्रिंग में छिपा होता है — GUID (Globally Unique Identifier) या इसका अधिक सटीक भाई UUID (Universally Unique Identifier)।

\n\n

Stack Overflow पर "How do I create a GUID / UUID?" प्रश्न हजारों बार देखा जाता है। यह कोई संयोग नहीं है। हर डेवलपर को कभी न कभी इस कार्य का सामना करना पड़ता है: "मुझे एक अद्वितीय ID चाहिए, लेकिन मैं पूरी लाइब्रेरी नहीं लाना चाहता।" आज हम JavaScript में इस विषय को शुरू से अंत तक समझेंगे। आप न केवल UUID जनरेट करना सीखेंगे, बल्कि यह भी समझेंगे कि अपने कार्य के लिए कौन सी विधि चुननी है।

\n\n

तैयार हैं? चलिए शुरू करते हैं!

\n\n

UUID वास्तव में क्या है? (और यह जादू क्यों नहीं है)

\n\n

कोड लिखने से पहले, आइए सिद्धांत को समझें। UUID एक 128-बिट संख्या है जिसे आमतौर पर डैश के साथ हेक्साडेसिमल प्रारूप में लिखा जाता है। यह इस तरह दिखता है:

\n\n
123e4567-e89b-12d3-a456-426614174000
\n\n

मानक RFC 4122 UUID के कई संस्करणों का वर्णन करता है। सबसे लोकप्रिय:

\n
    \n
  • संस्करण 4: यादृच्छिक UUID। इंटरनेट पर आपको जो कुछ भी मिलेगा, वह लगभग यही है।
  • \n
  • संस्करण 1: समय और MAC पते पर आधारित। पुराना हो चुका है, लेकिन कभी-कभी मिल जाता है।
  • \n
  • संस्करण 5: SHA-1 हैश का उपयोग करके नाम (जैसे URL) से उत्पन्न होता है।
  • \n
\n\n

UUID की मुख्य विशेषता केंद्रीय सर्वर के बिना अद्वितीयता है। टकराव (दो ID के मिलने) की संभावना इतनी कम है कि इसे नजरअंदाज किया जा सकता है। कहा जाता है कि यदि प्रति सेकंड एक अरब UUID जनरेट किए जाएं, तो डुप्लिकेट बनने में लगभग 100 साल लगेंगे। काफी अच्छी गारंटी है, है ना?

\n\n

सबसे सही तरीका: crypto.randomUUID()

\n\n

यदि आप आधुनिक JavaScript (ES2020+) लिख रहे हैं, तो आपके पास एक अंतर्निहित समाधान है — crypto.randomUUID()। यह विधि ब्राउज़रों और Node.js (संस्करण 14.17.0 से) में उपलब्ध है।

\n\n

यह इस प्रकार काम करता है:

\n\n
// ब्राउज़र\nconst myUUID = crypto.randomUUID();\nconsole.log(myUUID); // आउटपुट: "f47ac10b-58cc-4372-a567-0e02b2c3d479"
\n\n
// Node.js (आधुनिक संस्करण)\nconst { randomUUID } = require('crypto');\nconst myUUID = randomUUID();\nconsole.log(myUUID);
\n\n

यह सबसे अच्छा विकल्प क्यों है?

\n
    \n
  • सुरक्षा: क्रिप्टोग्राफिक रूप से सुरक्षित यादृच्छिक संख्या जनरेटर का उपयोग करता है। कोई पूर्वानुमानित पैटर्न नहीं।
  • \n
  • मानक: RFC 4122 संस्करण 4 का सख्ती से पालन करता है।
  • \n
  • प्रदर्शन: अंदरूनी रूप से C++ में लिखा गया है, बिजली की गति से काम करता है।
  • \n
  • शून्य निर्भरता: तृतीय-पक्ष लाइब्रेरी स्थापित करने की आवश्यकता नहीं है।
  • \n
\n\n

महत्वपूर्ण: पुराने ब्राउज़रों (Internet Explorer, Safari 15.4 से पहले) में यह विधि उपलब्ध नहीं हो सकती है। यदि आप ऐसे "डायनासोर" का समर्थन करते हैं, तो आगे पढ़ें — हमारे पास वैकल्पिक विकल्प हैं।

\n\n

क्लासिक हैक: Math.random() + RFC 4122 टेम्पलेट

\n\n

crypto.randomUUID() के आने से पहले, डेवलपर्स अपने तरीके खोजते थे। सबसे लोकप्रिय विकल्प UUID टेम्पलेट में अंक डालने के लिए Math.random() का उपयोग करना है। यह कोड 10 वर्षों से अधिक समय से इंटरनेट पर घूम रहा है:

\n\n
function generateUUID() {\n    return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n        const r = Math.random() * 16 | 0;\n        const v = c === 'x' ? r : (r & 0x3 | 0x8);\n        return v.toString(16);\n    });\n}\n\nconsole.log(generateUUID()); // आउटपुट: "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"
\n\n

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

\n
    \n
  1. टेम्पलेट xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx प्रारूप निर्धारित करता है।

ब्लॉग

पुस्तक अनुशंसाएँ