PHP में पासवर्ड हैशिंग
पासवर्ड को सादे रूप में स्टोर करना गलत है। हैकर-दुर्भावनापूर्ण व्यक्ति आपके डेटाबेस तक पहुंच प्राप्त कर सकता है और पासवर्ड चुरा सकता है।
इसलिए आमतौर पर लॉगिन को सादे रूप में स्टोर किया जाता है,
और पासवर्ड को एक विशेष फ़ंक्शन md5 द्वारा हैश किया जाता है,
जो पैरामीटर के रूप में पासवर्ड लेता है,
और उसका हैश लौटाता है, जिससे
यह पासवर्ड पुनर्प्राप्त नहीं किया जा सकता।
आइए, उदाहरण के लिए, किसी स्ट्रिंग का हैश ढूंढते हैं:
<?php
echo md5('12345'); // आउटपुट होगा '827ccb0eea8a706c4c34a16891f84e7b'
?>
अब हमें अपने रजिस्ट्रेशन और अपने ऑथोराइजेशन को दोबारा तैयार करना होगा। शुरुआत में मैं यूजर्स वाली टेबल को खाली करने की सलाह दूंगा, क्योंकि वहां अभी पासवर्ड सादे रूप में स्टोर हैं, जबकि उनके हैश स्टोर होने चाहिए। फिर टेस्टिंग के दौरान टेबल नए फॉर्मेट में डेटा से भर जाएगी।
आइए अब हम अपने रजिस्ट्रेशन को ठीक करते हैं ताकि नए यूजर को डेटाबेस में सेव करते समय पासवर्ड नहीं, बल्कि उसका हैश जोड़ा जाए।
वर्णित सुधार कुछ इस तरह का होगा:
<?php
$login = $_POST['login'];
$password = md5($_POST['password']); // पासवर्ड को उसके हैश में बदलें
$query = "INSERT INTO users SET login='$login', password='$password'";
?>
आइए ऑथोराइजेशन में भी इसी तरह के सुधार करते हैं:
<?php
$login = $_POST['login'];
$password = md5($_POST['password']); // पासवर्ड को उसके हैश में बदलें
$query = "SELECT * FROM users WHERE login='$login' AND password='$password'";
?>
हैशिंग को ध्यान में रखते हुए रजिस्ट्रेशन में बदलाव करें, कुछ नए यूजर्स को रजिस्टर करें, सुनिश्चित करें कि वे डेटाबेस में हैश किए गए पासवर्ड के साथ जुड़ गए हैं।
हैशिंग को ध्यान में रखते हुए ऑथोराइजेशन में बदलाव करें, पहले रजिस्टर किए गए यूजर्स के तहत ऑथोराइज़ होने का प्रयास करें।