जानना मैं एक वेब अनुप्रयोग के लिए लॉगिन प्रणाली बना रहा हूं। डीबी में पासवर्ड स्टोर करने के लिए, मैं SHA256 का उपयोग कर के रूप में इस पासवर्ड एन्क्रिप्ट कर रहा हूँ:डीकोड हैश sha256 एन्क्रिप्शन, नमक
$salt ="sometext";
$escapedPW="userpass";
$saltedPW = $escapedPW . $salt;
$hashedPW = hash('sha256', $saltedPW);
echo "<center>".$hashedPW."</center>";
डेटाबेस में मैं उपयोगकर्ता, उपयोगकर्ता का पासवर्ड और हैश बनाने के लिए और उपयोगकर्ता के प्रवेश को मान्य करने के लिए इस्तेमाल नमक भंडारण कर रहा हूँ। अभी मैं उपयोगकर्ता को आपके पासवर्ड के साथ एक ईमेल भेजने की कार्यक्षमता कर रहा हूं, लेकिन जब उपयोगकर्ता ईमेल प्राप्त करता है, चूंकि sha256 एन्क्रिप्टेड पासवर्ड में संग्रहीत किया जाता है, तो उपयोगकर्ता को एक लंबी स्ट्रिंग प्राप्त होती है, न कि पासवर्ड जिसे उपयोगकर्ता माना जाता है जानना।
मेरा प्रश्न यह है कि मैं आपको वास्तविक उपयोगकर्ता पासवर्ड भेज सकता हूं और पासवर्ड एन्क्रिप्शन नहीं भेज सकता, यानी, अगर मुझे नमक पता है तो sha256 के विपरीत करने का कोई तरीका है? यदि संभव नहीं है, तो एन्क्रिप्शन कुंजी के विपरीत को पूरा करने और ईमेल में उपयोगकर्ता को वास्तविक पासवर्ड भेजने के लिए एन्क्रिप्शन की विधि की अनुशंसा की जाती है।
हैश का पूरा बिंदु यह है कि आप मूल मान प्राप्त करने के लिए इसे उलट नहीं सकते हैं; न ही आपको उस उपयोगकर्ता को मूल पासवर्ड भेजना चाहिए जो इसे भूल गया है - आप उन्हें अपना पासवर्ड रीसेट करने के लिए एक बार, समय-सीमित लिंक भेजते हैं –
एक हैश को अपरिवर्तनीय माना जाता है (कम से कम एक आदर्श दुनिया में)। यदि आप अपनी खुद की हैश को वापस करने पर अपना पासवर्ड रिकवरी सिस्टम बना रहे हैं, तो आपको उस पर पुनर्विचार करना चाहिए जो आप कर रहे हैं। आप मूल रूप से खुद को हैक करने की कोशिश कर रहे हैं। प्रश्न के लिए +1, हालांकि, अन्य लोगों के समान संदेह हो सकता है, और आपका प्रश्न काफी उपयोगी है। – Renan
@Renan जरूरी नहीं है, उपयोगकर्ता डीबी में होना चाहिए, और पासवर्ड उपयोगकर्ता के व्यक्तिगत ईमेल पर भेजा जाता है। – franvergara66