मुख पृष्ठ
/
ऐप्स
/
आईडी टकराव संभावना कैलकुलेटर
आईडी टकराव संभावना कैलकुलेटर

आईडी टकराव संभावना कैलकुलेटर

यादृच्छिक UUID, ULID या शॉर्ट कोड जनरेट करते समय टकराव की संभावना का अनुमान लगाएं, और जोखिम बढ़ने से पहले आप कितने आईडी सुरक्षित रूप से बना सकते हैं, यह पता करें।

यादृच्छिक UUID, ULID या शॉर्ट कोड जनरेट करते समय टकराव की संभावना का अनुमान लगाएं, और जोखिम बढ़ने से पहले आप कितने आईडी सुरक्षित रूप से बना सकते हैं, यह पता करें।

केवल तभी उपयोग होता है जब ऊपर आईडी प्रकार "Custom bit length" पर सेट हो

सिस्टम के पूरे जीवनकाल में, या जिस अवधि की आपको चिंता है उसमें कुल

वह जोखिम सीमा जिसे आप स्वीकार करने को तैयार हैं, उदाहरण के लिए 1% के लिए 1

इस ऐप को साझा करें

आईडी टकराव संभावना कैलकुलेटर

यादृच्छिक पहचानकर्ता (identifiers) बनाने वाला हर सिस्टम — चाहे वह UUID हो, ULID हो, शॉर्ट URL स्लग हो, या वन-टाइम कोड — चुपचाप इस उम्मीद पर टिका होता है कि दो आईडी कभी एक जैसी नहीं निकलेंगी। यह टूल उसी गणित का उपयोग करके इस जोखिम का अनुमान लगाता है जो प्रसिद्ध "बर्थडे पैराडॉक्स" के पीछे है: टकराव (collision) की संभावना अंतर्ज्ञान से कहीं जल्दी बढ़ जाती है।

यह क्यों महत्वपूर्ण है

यदि आप एक निश्चित आकार के स्पेस से पर्याप्त संख्या में यादृच्छिक आईडी बनाते हैं, तो अंततः दो आईडी संयोगवश मेल खा जाएँगी। हैरानी की बात यह है कि इसके लिए कितनी कम आईडी की आवश्यकता होती है। सिर्फ 23 लोगों के एक कमरे में, 365 संभावित दिनों में से दो लोगों के जन्मदिन एक ही दिन होने की संभावना पहले से ही 50% होती है। यही गणित डेटाबेस आईडी, सेशन टोकन और शॉर्ट कोड पर भी लागू होता है, बस बहुत बड़े पैमाने पर।

इसे समझने से आप एक ऐसी आईडी योजना (और बिट-लंबाई) चुन सकते हैं जो आपके सिस्टम द्वारा वास्तव में बनाई जाने वाली आईडी की संख्या के लिए टकराव के जोखिम को स्वीकार्य रूप से कम रखे।

सूत्र (फॉर्मूला)

आकार N (जहाँ N = 2^bits) के स्पेस से यादृच्छिक रूप से बनाई गई n आईडी के लिए, कम से कम एक टकराव की अनुमानित संभावना है:

P1en(n1)2NP \approx 1 - e^{-\frac{n(n-1)}{2N}}

इसके विपरीत, एक लक्ष्य टकराव संभावना p तक पहुँचने से पहले आप कितनी आईडी n बना सकते हैं, यह जानने के लिए सूत्र को पुनर्व्यवस्थित किया जाता है:

n2Nln(11p)n \approx \sqrt{2N \cdot \ln\left(\frac{1}{1-p}\right)}

एक उपयोगी संदर्भ बिंदु वह आईडी संख्या है जिस पर टकराव की संभावना ठीक 50% तक पहुँचती है — इसे "बर्थडे बाउंड" कहा जाता है:

n501.1774Nn_{50} \approx 1.1774 \sqrt{N}

इस कैलकुलेटर का उपयोग कैसे करें

  1. ड्रॉपडाउन से एक आईडी प्रकार चुनें — UUIDv4, UUIDv7, ULID, 8-अक्षर का Base62 शॉर्ट कोड, या 6-अंकों का न्यूमेरिक OTP जैसी सामान्य योजनाओं की ज्ञात यादृच्छिकता (एंट्रॉपी) पहले से भरी होती है।
  2. यदि आप अपनी खुद की आईडी योजना डिज़ाइन कर रहे हैं, तो इसके बजाय "Custom bit length" चुनें और उसके द्वारा उपयोग किए जाने वाले यादृच्छिक बिट्स की संख्या दर्ज करें।
  3. आप जितनी आईडी बनाने की उम्मीद करते हैं, वह दर्ज करें (सिस्टम के पूरे जीवनकाल में, या किसी विशेष अवधि में)।
  4. एक लक्ष्य टकराव संभावना (प्रतिशत में) सेट करें — यह वह जोखिम सीमा है जिसे आप स्वीकार करने को तैयार हैं, आमतौर पर महत्वपूर्ण पहचानकर्ताओं के लिए 1% या 0.01%।
  5. सबमिट करें और देखें: उस संख्या पर आपकी वास्तविक टकराव संभावना, लक्ष्य जोखिम तक पहुँचने से पहले आप कितनी आईडी बना सकते हैं, बर्थडे-बाउंड संदर्भ बिंदु, और एक तालिका जो सामान्य स्तरों पर संभावना कैसे बढ़ती है यह दिखाती है।

हल किया गया उदाहरण

मान लीजिए आप मानक UUIDv4 मान बना रहे हैं (122 बिट्स की यादृच्छिकता, यानी N = 2^122) और अपने एप्लिकेशन के पूरे जीवनकाल में 1 अरब (n = 1,000,000,000) बनाने की उम्मीद करते हैं।

सूत्र में डालने पर:

P1e(109)22×21229.4×1020P \approx 1 - e^{-\frac{(10^9)^2}{2 \times 2^{122}}} \approx 9.4 \times 10^{-20}

यह लगभग 10.6 क्विंटिलियन में 1 की संभावना है — व्यावहारिक रूप से शून्य, यही कारण है कि UUIDv4 को लगभग किसी भी वास्तविक कार्यभार के लिए टकराव-सुरक्षित माना जाता है। इसकी तुलना 6-अंकों के न्यूमेरिक OTP (N = 10^6, लगभग 19.9 बिट्स) से करें: केवल 1,177 OTP बनाने पर ही 50% टकराव सीमा पार हो जाती है, यही कारण है कि OTP कम समय के लिए वैध होते हैं और एक साझा वैश्विक पूल के बजाय एक समय में एक ही उपयोगकर्ता तक सीमित रखे जाते हैं।

सामान्य आईडी योजनाएँ और उनकी एंट्रॉपी

योजना अनुमानित यादृच्छिक बिट्स
UUIDv4 122 बिट्स
ULID (यादृच्छिक भाग) 80 बिट्स
UUIDv7 (यादृच्छिक भाग) 74 बिट्स
8-अक्षर का Base62 स्ट्रिंग ~47.6 बिट्स
6-अंकों का न्यूमेरिक कोड (OTP) ~19.9 बिट्स

किसी अन्य योजना के लिए — जैसे किसी अलग अक्षर-सेट/लंबाई वाला nanoid, कोई न्यूमेरिक रेंज, या कोई आंतरिक आईडी फॉर्मैट — "Custom" विकल्प का उपयोग करें और bits = log2(आपके आईडी स्पेस का आकार) की गणना करें।