के साथ मेरे हैंश को सट्टेबाजी करना अधिकांश उपयोगकर्ताओं की तरह, मैं बस पासवर्ड स्टोर करने के लिए एक सुरक्षित तरीका जानने का प्रयास कर रहा हूं। जो मुझे यहां नहीं मिला है (या शायद यह मेरी समझ की कमी है) है कि मेरे डेटाबेस में नमकीन हैश को कैसे प्राप्त किया जाए और नमक को पासवर्ड बनाए रखने के दौरान प्रत्येक पासवर्ड के लिए अद्वितीय लवण के साथ विशेष रूप से से नमक को अलग करें। एक कॉलम मेंPHP और MySQL
मुझे पासवर्ड एन्क्रिप्ट करने के लिए इन सभी शानदार तरीकों को ढूंढ रहा है (SHA-256, लेकिन MySQL केवल SHA/1 और MD5 का समर्थन करता है?) और PHP मैनुअल से अन्य चीजें, लेकिन यह सुनिश्चित नहीं है कि पासवर्ड कैसे स्टोर और पुनर्प्राप्त करें।
तो, अब तक यह सब है मैं समझता हूँ:
SHA('$salt'.'$password') // My query sends the password and salt
// (Should the $salt be a hash itself?)
मैं लवण के साथ खो रहा हूँ उसके बाद।
नमक के बिना पासवर्ड पुनर्प्राप्त करना आसान है, लेकिन नमक मुझे भ्रमित करता है। मुझे फिर से नमक से मूल्य कहां मिल सकता है, खासकर यदि यह अद्वितीय और सुरक्षित है? क्या मैं उन्हें किसी अन्य डेटाबेस में छुपाता हूं? निरंतर (असुरक्षित लगता है)?
संपादित करें: क्या एचएमएसी में मुख्य चर नमक होना चाहिए या यह कुछ और है?
Fwiw, MySQL 5.5 एसएसएल समर्थन के साथ बनाया एक 'SHA2 भी शामिल है () 'समारोह जो SHA224, SHA256, SHA384, और SHA512 हैश एल्गोरिदम प्रदान करता है। यदि आप MySQL के पुराने संस्करण का उपयोग कर रहे हैं, तो PHP में 'हैश()' फ़ंक्शन का उपयोग करें। –
फिर से धन्यवाद, बिल, यह दूसरी बार है जब आपने मदद की है! मैं 5.1 का उपयोग कर रहा हूं क्योंकि यह WAMP (wampserver.com) के साथ आया था। मुझे इसे स्थापित करने के लिए अपने पुराने MySQL को अनइंस्टॉल करना पड़ा। दुर्भाग्यवश, मुझे यकीन नहीं है कि इसे कैसे अपडेट किया जाए ... मैं अपने एन्क्रिप्शन के लिए PHP का उपयोग करने का प्रयास करूंगा। – Tarik