Avatar ·

PHP में पासवर्ड के लिए सुरक्षित हैशिंग और सॉल्ट

सभी को नमस्ते! मैं एक शुरुआती PHP डेवलपर हूं और उपयोगकर्ताओं के पासवर्ड को सुरक्षित रूप से संग्रहीत करने के बारे में समझने की कोशिश कर रहा हूं। अभी मैं सॉल्ट के साथ MD5 का उपयोग कर रहा हूं, लेकिन मुझे बताया गया कि यह असुरक्षित है। मेरा वर्तमान कोड इस प्रकार है: ```php function createPassword($password) { $salt = 'my_very_secret_salt_12345'; return md5($salt . $password); } function checkPassword($password, $hash) { $salt = 'my_very_secret_salt_12345'; return md5($salt . $password) === $hash; } ``` मैं समझता हूं कि MD5 पुराना हो चुका है, लेकिन मुझे नहीं पता कि इसे किससे बदलूं। मैंने bcrypt, password_hash और password_verify के बारे में सुना है, लेकिन मैं नहीं समझता कि उनका सही तरीके से उपयोग कैसे करें। मुख्य प्रश्न: 1. प्रत्येक पासवर्ड के लिए सॉल्ट सही तरीके से कैसे उत्पन्न करें? 2. क्या सॉल्ट को अलग से संग्रहीत करने की आवश्यकता है और जांच करते समय इसे कैसे पास करें? 3. PHP में वर्तमान में कौन से एल्गोरिदम सुरक्षित माने जाते हैं? 4. ब्रूट फोर्स और रेनबो टेबल हमलों से कैसे बचाव करें? मैं विस्तृत कोड उदाहरणों और स्पष्टीकरणों के लिए आभारी रहूंगा। मैं सिर्फ 'कैसे' नहीं, बल्कि 'क्यों' भी समझना चाहता हूं।