NanoID क्या है?

NanoID एक छोटा, URL-सुरक्षित अद्वितीय ID जनरेटर है जो JavaScript के लिए है। यह कॉम्पैक्ट रैंडम स्ट्रिंग्स बनाता है जो सांख्यिकीय रूप से अद्वितीय हैं — UUID v4 के समान, लेकिन डिफ़ॉल्ट रूप से छोटे (21 वर्ण बनाम 36) और किसी भी एन्कोडिंग के बिना URL-अनुकूल होने के लिए डिज़ाइन किए गए हैं। प्रत्येक वर्ण एक सावधानीपूर्वक संतुलित वर्णमाला से चुना जाता है ताकि हर संभावित ID समान रूप से संभावित हो, वितरण में पूर्वाग्रह को समाप्त करता है।

NanoID एक क्रिप्टोग्राफ़िक रूप से मजबूत रैंडम नंबर जनरेटर का उपयोग करता है (ब्राउज़र में crypto.getRandomValues, Node.js में crypto.randomFill), जो उत्पन्न IDs को सुरक्षा-संवेदनशील संदर्भों जैसे सत्र tokens और एकबारी लिंक के लिए उपयुक्त बनाता है। डिफ़ॉल्ट 21-वर्ण की लंबाई लगभग 2.1 × 10³⁰ संभावित संयोजन देती है — UUID v4 के बराबर — जबकि कॉम्पैक्ट प्रारूप बैंडविड्थ और स्टोरेज स्पेस बचाता है।

टूल विवरण

यह ऑनलाइन NanoID जनरेटर आपको अपने ब्राउज़र में तुरंत एक या अधिक NanoIDs बनाने देता है, कोई इंस्टॉलेशन आवश्यक नहीं है। आप ID की लंबाई, कितने IDs जनरेट करने हैं, और कौन सी वर्णमाला का उपयोग किया जाए — सुरक्षित डिफ़ॉल्ट से लेकर hex, alphanumeric, केवल संख्याएं, या पूरी तरह से कस्टम वर्ण सेट तक नियंत्रित कर सकते हैं।

उदाहरण

डिफ़ॉल्ट वर्णमाला, आकार 21:

V1StGXR8_Z5jdHi6B-myT
useandom-26T198340PX7
bfghjklqvwyzrictV1StG

Hex वर्णमाला, आकार 16:

3f9a1c2b4e7d0f85
a0c4e8f23b6d917c

केवल संख्याएं, आकार 8:

04817263
93571048

कस्टम वर्णमाला (abc123), आकार 12:

b2ca31b1ca2b
3a1c2b3c1ab2

विशेषताएं

  • समायोज्य लंबाई: ID आकार को 1 से 64 वर्ण तक सेट करें (डिफ़ॉल्ट 21)
  • बल्क जनरेशन: एक बार में 1,000 तक IDs जनरेट करें
  • वर्णमाला प्रीसेट: डिफ़ॉल्ट, संख्याएं, लोअरकेस, अपरकेस, Alphanumeric, Hex, अपरकेस Hex, No-Look-Alikes, या पूरी तरह से कस्टम वर्ण सेट से चुनें
  • No-Look-Alikes प्रीसेट: ऐसे वर्णों को हटाता है जो दृश्य रूप से अस्पष्ट हैं (जैसे 0, O, I, l) मानव-पठनीय IDs के लिए
  • फ़ाइल के रूप में डाउनलोड करें: सभी उत्पन्न IDs को nanoids.txt में एक क्लिक से सहेजें

उपयोग के मामले

  • एप्लिकेशन विकास: डेटाबेस में प्राथमिक कुंजी के रूप में या APIs में रिकॉर्ड पहचानकर्ता के रूप में NanoIDs का उपयोग करें जहां एक छोटी, URL-सुरक्षित स्ट्रिंग पूर्ण UUID से बेहतर है।
  • Token जनरेशन: पासवर्ड-रीसेट लिंक, आमंत्रण कोड, या रेफरल slugs के लिए छोटे रैंडम tokens जनरेट करें जहां पठनीयता और URL सुरक्षा महत्वपूर्ण हैं।
  • परीक्षण और मॉक डेटा: परीक्षण fixtures को भरने या प्रोटोटाइप डेटा के लिए यथार्थवादी दिखने वाले अद्वितीय पहचानकर्ताओं का एक बैच तुरंत बनाएं।

विकल्प समझाया गया

विकल्प विवरण
आकार प्रत्येक उत्पन्न ID में वर्णों की संख्या (1–64)। 21 का डिफ़ॉल्ट ~126 बिट्स एंट्रॉपी देता है, UUID v4 के बराबर।
मात्रा एक बैच में कितने IDs जनरेट करने हैं (1–1,000)।
वर्णमाला जिस वर्ण पूल से खींचना है। बड़ी, अधिक विविध वर्णमाला प्रति वर्ण एंट्रॉपी बढ़ाती है।
कस्टम वर्णमाला जब कस्टम चुना जाता है तो दिखाई देता है। कोई भी वर्ण दर्ज करें; डुप्लिकेट को स्वचालित रूप से हटा दिया जाता है ताकि विषम वितरण को रोका जा सके।

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

NanoID एक रैंडम बाइट जनरेट करके, इसे वर्णमाला आकार में फिट करने के लिए मास्क करके, और यदि परिणाम वैध रेंज से बाहर आता है तो पुनः प्रयास करके प्रत्येक वर्ण का चयन करता है — एक तकनीक जिसे rejection sampling कहा जाता है। यह सभी वर्णमाला वर्णों में एक पूरी तरह से सपाट वितरण सुनिश्चित करता है, भले ही वर्णमाला आकार दो की शक्ति हो। डिफ़ॉल्ट वर्णमाला (useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict) URL-सुरक्षित है (कोई +, /, या = नहीं) और इसमें 64 वर्ण हैं, जिससे प्रत्येक वर्ण बिल्कुल 6 बिट्स एंट्रॉपी ले जाता है।