2009-03-12 15 views
5

मैं उपयोगकर्ता के उपयोगकर्ता नाम और एक टोकन है, जो भी एक डेटाबेस में एन्क्रिप्टेड संग्रहीत किया जाता है के साथ एक कुकी का उपयोग "मुझे याद रखें" एक वेबसाइट के लिए कार्यक्षमता जोड़ने के लिए कोशिश कर रहा हूँ। मेरा सवाल यह है कि यह टोकन कब तक होना चाहिए? One website I read ने 128 बिट कहा, जो मेरी सोच में 16 वर्ण हैं। मैं डुप्लिकेट के बारे में भी चिंतित नहीं हूँ के रूप में 256 वर्णों की एक वर्ण सेट से भी 16 वर्णों possibilites की एक बड़ी संख्या और एक ही समय पतली है पर डुप्लिकेट का मौका प्रदान करता है।"मुझे याद रखें" टोकन कब तक होना चाहिए?

टोकन कब तक होना चाहिए? (मैं इस बारे में सोच नहीं रहा हूं कि मूल्य कैसे उत्पन्न किया जाए या कैसे अद्वितीय।)

+0

आप वेबसाइट है कि आप अपने प्रश्न में उल्लेख करने के लिए एक लिंक प्रदान कर सकते हैं। क्या आप पूछ रहे हैं कि कुकी में कितना मूल्य संग्रहीत होना चाहिए या आपको उस मूल्य को कैसे उत्पन्न करना चाहिए और यह भी क्या संबंधित होना चाहिए? –

+0

वेबसाइट पर प्रश्न और जोड़ा लिंक संशोधित किया गया। –

+0

आपको यह जानने की आवश्यकता क्यों है कि "दाएं" लंबाई क्या है? यहां कोई अधिकार नहीं है। आप इसे कैसे उत्पन्न करें, लेकिन लंबाई के बारे में परवाह नहीं करते हैं? वे निकट से संबंधित हैं। – jmucchiello

उत्तर

1

मुझे लगता है कि यह इस बात पर निर्भर करता है कि मूल्य कितना समय से यादृच्छिक है। एक 256 बिट हैश बिल्कुल सुरक्षित नहीं है अगर यह किसी ऐसे चीज का हैश है जिसे आसानी से अनुमान लगाया जा सकता है या उस समय के आधार पर एक अद्वितीय आईडी जैसे संकुचित किया जा सकता है।

हालांकि, जैसा कि आपने कहा है, आप विशेष रूप से यह यादृच्छिक रूप से पर्याप्त बनाने के बारे में नहीं पूछ रहे हैं।

कुछ तोड़ने के लिए अनुमानित 2^80 (या अधिक) आवश्यक संचालन आमतौर पर एक अच्छा उपाय होता है। यह दर्शाता है कि एक 80 बिट हैश सुरक्षित है। (यदि आप जन्मदिन के हमलों के लिए कमजोर थे, तो आपको 160 बिट्स की दोगुनी आवश्यकता होगी, लेकिन मुझे नहीं लगता कि ये स्थितियां लागू होती हैं)।

व्यक्तिगत रूप से, इस उद्देश्य के लिए मैं 256 बिट हैंश का उपयोग करता हूं। जब बेस 64 एन्कोड किया गया, तो वे लंबाई में केवल 43 वर्णों तक सीमित हो जाते हैं, सभी प्रिंट करने योग्य वर्ण। मुझे लगता है कि भले ही यह मेरी जरूरत से ज्यादा है, लेकिन यह लंबे समय तक उन्हें बड़ी परेशानी नहीं है।

+0

उम्म, ज्यादातर स्थितियों में एक GUID आसानी से अनुमानित या संकुचित नहीं किया जा सकता है। –

+0

ठीक है, मैं जवाब संपादित कर दूंगा। – thomasrutter

7

बस GUID का उपयोग करें। कई डेटाबेस उन्हें मूल प्रकार के रूप में समर्थन देते हैं; वे सबसे लोकप्रिय भाषाओं/ढांचे में हेरफेर करना आसान है; पूरी तरह से एक मंच से दूसरे मंच में अनुवाद; और every one is unique

+0

क्षमा करें, मुझे लगता है कि यह स्पष्ट नहीं था। मैं लंबाई के बारे में सोच रहा हूँ। –

+0

एक GUID आपके प्रश्न में उल्लिखित 128 बिट्स/16 वर्णों की लंबाई का तात्पर्य है। – chaos

+0

मैं देख रहा हूँ कि यह कितनी लंबाई होनी चाहिए। 16 सही लंबाई है? –

0

आप हमेशा देख सकते हैं कि दूसरों ने क्या किया है, जैसे Oauth2 जो टोकन 128 और 160 बिट्स के बीच होता है, और ऐसा ही करता है। मैं this post है, जो 122 बिट पर्याप्त होना चाहिए कहते हैं की तरह है "परमाणु मिसाइलों के लिए लांच कोड सहित अधिकांश उद्देश्यों के लिए।" यदि आप वास्तविक लॉन्च कोड may have been 00000000 for 20 years पर विश्वास करते हैं तो कौन सा मजाकिया है। हमारे 160 बिट टोकन की सुरक्षा के लिए बहुत कुछ।

संबंधित मुद्दे