प्रस्तावना: एक साधारण ई-कॉमर्स वेबसाइट बनाना। जब वे पंजीकरण पृष्ठ के माध्यम से पंजीकरण करते हैं, तो उपयोगकर्ता स्वचालित रूप से जोड़ दिए जाते हैं। मैं स्वचालित रूप से उनके पासवर्ड एन्क्रिप्ट करना चाहता हूं।
समस्या: MySQL वेबसाइट AES_ECRYPT का उपयोग करने का तरीका बताती है, लेकिन ऐसा लगता है कि यह टर्मिनल-प्रकार की सेटिंग्स के लिए है जहाँ व्यवस्थापक मैन्युअल रूप से ऐसा करेगा।
मैं स्वतः कोड एन्क्रिप्ट करने के लिए register.php में कुछ कोड जोड़ना चाहता हूं।
धन्यवाद!
उत्तर:
उत्तर № 1 के लिए -1आप हैश पासवर्ड चाहते हैं और नहींउन्हें एन्क्रिप्ट करें। एक एन्क्रिप्शन कुंजी के साथ पूर्ववत किया जा सकता है। उपयोगकर्ता के प्रकार को जिस पासवर्ड में प्लेटेक्स्ट पासवर्ड कहा जाता है, प्लेनटेक्स्ट पासवर्ड को कभी भी लिखा या संग्रहीत नहीं किया जाना चाहिए
जब कुछ हैशेड होता है, तो यह एक तरीका हैअनुवाद, एक हैश को आसानी से अपने सादे रूप में अनुवाद नहीं किया जा सकता है, इसलिए जब कोई अपना पासवर्ड दर्ज करता है, तो आप इसे हैश करते हैं और फिर डेटाबेस में संग्रहीत हैशेड पासवर्ड से तुलना करते हैं।
कुछ हैशिंग एल्गोरिदम MD5, SHA1 इत्यादि हैंPHP, आप एक पासवर्ड हैश करने के लिए क्रिप्ट फ़ंक्शन का उपयोग कर सकते हैं। मुझे ध्यान देना चाहिए कि MD5 और SHA1 अब बहुत सुरक्षित नहीं हैं क्योंकि वे बहुत तेज हैं, जिसका अर्थ है कि वे काफी जल्दी मजबूर हो सकते हैं (ऐसे डेटाबेस भी हैं जहां आप इंजीनियर को हैश को काफी जल्दी रिवर्स कर सकते हैं)। आपको PHP के क्रिप्ट फ़ंक्शन का उपयोग करना चाहिए।
tl; dr - हैश पासवर्ड, डॉन "टी उन्हें एन्क्रिप्ट (सुरक्षा के लिए, विशेष रूप से ईकामर्स)।
जवाब के लिए 0 № 2
जैसा कि अन्य उत्तर में कहा गया है, आपको अपने पासवर्ड को एन्क्रिप्ट नहीं करना चाहिए। उन्हें हैशेड किया जाना चाहिए।
वे चाहिए नहीं उपयोग MD5
या SHA
आप चािहए उपयोग bcrypt
एन्क्रिप्शन का उपयोग नहीं किया जाना चाहिए क्योंकि आप कभी भी मूल्यों को डिक्रिप्ट करने और पासवर्ड देखने में सक्षम नहीं होना चाहते हैं, क्योंकि हैकर्स भी ऐसा कर सकते हैं।
हैशिंग एक तरह से एन्क्रिप्शन की तरह हैं, आप एक हैश बनाते हैं, और लॉग इन करते समय, आपके पास पासवर्ड होता है जो उन्होंने लॉगिन पर दर्ज किया था और संग्रहीत हैश के खिलाफ तुलना करते हैं।
MD5
तथा SHA
अब इसके लिए उपयुक्त नहीं हैं क्योंकि कंप्यूटर तेज़ और तेज़ हैं और वे आपके पासवर्ड प्राप्त करने की कोशिश करने के लिए प्रति सेकंड 60+ बिलियन की दर से शब्द और आम पासवर्ड हैश कर सकते हैं।
इस विषय को StackOverflow पर मृत्यु के लिए कवर किया गया है।
उपयोग करने के तरीके के लिए इसे देखें bcrypt
PHP में हैशिंग पासवर्ड के लिए आप bcrypt का उपयोग कैसे करते हैं?
और यह एक स्पष्टीकरण के लिए क्यों PHP पासवर्ड के लिए सुरक्षित हैश और नमक