sha

2010-12-17 16 views
7

के बजाय bcrypt का उपयोग करने के लिए तैयार और रेल 3 बदलना मुझे रेलवे 3 उत्पादन ऐप मिला है जो प्रमाणीकरण से निपटने के लिए उपयोग करता है। मैं ऐप पर शा के बजाय bcrypt का उपयोग करने के लिए बदलना चाहता हूं लेकिन मुझे कोई भी संसाधन नहीं मिल रहा है जो एक से दूसरे में माइग्रेट करने की प्रक्रिया को समझाता है। मुझे लगता है कि इस तथ्य को संभालने के लिए आपको कुछ प्रकार की फॉलबैक की आवश्यकता होगी कि इस समय के पासवर्ड शा के साथ एक निश्चित तरीके से नमकीन हैं ...sha

कोई भी इससे पहले किया गया है ?! कोई सुझाव, ट्यूटोरियल, चलने के माध्यम से, आदि ?!

उत्तर

3

मुझे नहीं लगता कि एक समाधान है जो आप चाहते हैं। सभी उपयोगकर्ता पासवर्ड

रीसेट और ईमेल करें और उन्हें उन्हें यह किया गया है कह (और अधिमानतः क्यों तो वे बाहर बेकार नहीं है)

में हर उपयोगकर्ता के लॉग के रूप में

, पुराने के खिलाफ जांच - मैं सिर्फ दो विकल्पों में से पता हैश सिस्टम जो आपके पास था, यदि यह मान्य होता है, तो एक नए कॉलम में एक नया bcrypt हैश बनाएं और फिर पुराने, कम सुरक्षित हैश को हटा दें और इस तरह धीमी माइग्रेशन शुरू करें।

गणित शक्ति को सभी को स्थानांतरित करने के लिए इंद्रधनुष तालिका बनाने की आवश्यकता है, बस संभावना नहीं है।

+0

हाँ मैं थोड़ी देर के लिए दूसरे विकल्प की तरफ झुका रहा हूं लेकिन मैं यहां पर किसी के आसपास से सुनने की उम्मीद कर रहा था कि ऐसा करने का एक आसान तरीका है ... – erskingardner

0

उपयोगकर्ता मॉडल:

वसीयत: encryptable

वसीयत उपयोगकर्ताओं प्रवास फ़ाइल:

t.encryptable

इन सेटिंग्स के लिए उपलब्ध हैं आप?

3

यहां के लिए एक बेहतर एल्गोरिदम है, जो आपको हर किसी को एक साथ स्विच करने देगा। आपको यह समझना होगा कि इसे कैसे तैयार किया जाए, लेकिन यहां रूपरेखा है। यूआरएल पर वेब पर पाया गया यह मेरा नहीं है।


http://blog.jgc.org/2012/06/one-way-to-fix-your-rubbish-password.html

  1. मान लीजिए आप एक डेटाबेस है कि आपकी साइट के एन उपयोगकर्ताओं के लिए पासवर्ड हैश शामिल है, और आप नमक सी और हैश हाय (जहां हाय कुछ के साथ गणना की थी प्रत्येक उपयोगकर्ता के लिए एसएलए 1 या एमडी 5 जैसे एल्गोरिदम)। (ध्यान दें कि इन शेष निर्देशों में कोई नमक नहीं है, तो इसे अनदेखा करें)।

  2. मान लीजिए कि आपने स्क्रिप का उपयोग करना चुना है। प्रत्येक उपयोगकर्ता के लिए आप पहले एक नया यादृच्छिक नमक मान s'i बनाते हैं और उसके बाद फॉर्मूला स्क्रिप (एसआईआई, हाय) का उपयोग करके एक नया हैश एचआई की गणना करते हैं और डेटाबेस में नया नमक और हैश स्टोर करते हैं। आप पुराने कमजोर हैश को फेंक देते हैं और भूल जाते हैं कि यह कभी अस्तित्व में है। तो आप दो नमक मूल्यों और एक नया हैश के साथ छोड़ दिया जाता है। (मैंने अन्य स्क्रिप पैरामीटर को अनदेखा कर दिया है जो निर्धारित करने के लिए पाठक को छोड़ दिए गए हैं)।

  3. उपयोगकर्ता मैं में लॉग और पासवर्ड पी आप अपने पुराने कमजोर हैश एल्गोरिथ्म का उपयोग प्रस्तुत करता है जब तुलना के लिए एक हैश गणना करने के लिए इस प्रकार है (मान लें यह md5 (नमक, पासवर्ड) था): scrypt (s'i, md5 (सी, पी)) और तुलना करें कि डेटाबेस में संग्रहीत h'i के साथ।

  4. यदि, last.fm की तरह, आप तीसरे पक्ष को पासवर्ड के बजाय पुराने हैश मान पेश करके उपयोगकर्ताओं को अधिकृत करने की अनुमति भी दे रहे थे तो आप अभी भी इस योजना का उपयोग कर सकते हैं।जब तीसरे पक्ष के उपयोगकर्ता के लिए हैश एच प्रस्तुत करता है तो मैं स्क्रिप (एसआई, एच) की गणना करता हूं और तुलना करता हूं।

  5. यदि चरण 4 की आवश्यकता नहीं है तो उपयोगकर्ता आगे लॉग इन करते समय आगे जा सकते हैं। एक बार जब उपयोगकर्ता पासवर्ड पी के साथ सफलतापूर्वक लॉग इन कर लेता है तो आप एक नया यादृच्छिक नमक मूल्य चुनकर पुराने कमजोर हैश के किसी भी निशान को पूरी तरह समाप्त कर सकते हैं s''i और कंप्यूटिंग स्क्रिप (एस ', पी) और डेटाबेस में संग्रहीत।

यह आपके उपयोगकर्ताओं के हिस्से पर किसी भी प्रयास किए बिना चोरी किए जाने पर तुरंत आपके पासवर्ड डेटाबेस को और अधिक सुरक्षित बनाने का प्रभाव है।

+0

यह मुझे लगता है कि यह बेहतर जवाब है। – Nico

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