NodeJS और क्रिप्टो का उपयोग करना, अभी, जब में एक उपयोगकर्ता के लॉग, मैं एक यादृच्छिक प्रमाणीकरण टोकन उत्पन्न:एक NodeJS, क्रिप्टो टोकन प्रमाणीकरण वातावरण में अद्वितीय टोकन जनरेट कर रहा है
var token = crypto.randomBytes(16).toString('hex');
मैं जानता हूँ कि यह संभव नहीं दिखता है, लेकिन वहाँ है एक ही मूल्य के दो टोकन के लिए एक बहुत ही छोटा मौका।
यह माप किसी उपयोगकर्ता को सिद्धांत में प्रमाणित कर सकता है।
- जब मैं टोकन बनाएं, उन डेटाबेस क्वेरी और देखें कि क्या एक ही मूल्य के साथ एक टोकन पहले से मौजूद है:
अब, मैं प्राप्त इस पारित करने के लिए दो स्पष्ट विधि देखें। यदि ऐसा होता है, तो बस उत्पन्न करें। जैसा कि आप देख सकते हैं, यह सही नहीं है क्योंकि मैं डेटाबेस में क्वेरी जोड़ रहा हूं।
- चूंकि प्रत्येक उपयोगकर्ता के पास मेरे डेटाबेस में एक अद्वितीय उपयोगकर्ता नाम है, इसलिए मैं
उपयोगकर्ता नाम का उपयोग गुप्त यादृच्छिक कुंजी के रूप में एक यादृच्छिक टोकन उत्पन्न कर सकता हूं। इस तरह, एक ही मूल्य वाले दो टोकन का कोई तरीका नहीं है।
क्रिप्टो ऐसा कर सकते हैं? क्या यह सुरक्षित है?
आप यह कैसे करेंगे?
तुम बस मुझे एक और विचार दिया ... जब में उपयोगकर्ता के लॉग, मैं जिसके लिए उपयोगकर्ता है कि कुछ टोकन है खोज करेंगे .. क्वेरी अगर एक और परिणाम मिलते हैं, बस उपयोगकर्ता को फिर से लॉग इन करें - इस तरह से मैं सबसे खराब परिदृश्य को भी संभाल सकता हूं - आपको क्या लगता है? –
आपके सर्वर को यादृच्छिक रूप से दो उपयोगकर्ताओं के बीच टोकन में टकराव उत्पन्न करने का मौका एक प्रेरित दुर्भावनापूर्ण उपयोगकर्ता के किसी अन्य उपयोगकर्ता के टोकन का अनुमान लगाने से बहुत कम है। यदि आप मानते हैं कि पहला मामला संभावित समस्या है, तो आपको दूसरे मामले पर अधिक समस्या होने और अधिक यादृच्छिक बाइट्स का उपयोग करके इसे संबोधित करना चाहिए। यदि आप मानते हैं कि 16 बाइट्स एक लक्षित ब्रूट-फोर्स हमलावर को लक्षित उपयोगकर्ता के टोकन का अनुमान लगाने से रोकने के लिए पर्याप्त है, तो उसे यह मानना चाहिए कि 16 बाइट्स आपके सर्वर को टकराव उत्पन्न करने से रोकने के लिए पर्याप्त हैं। – AgentME
सामान्य रूप से क्रिप्टो – hauron