PHP में पासवर्ड हैश और सॉल्ट: 2025 की सर्वश्रेष्ठ प्रैक्टिसेज

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

हैश, सॉल्ट और आपकी सुरक्षा: 2025 में यह क्यों ज़रूरी है?

\n\n

सोचिए: आपने एक शानदार वेबसाइट बनाई, सब कुछ काम कर रहा है, यूज़र रजिस्टर कर रहे हैं। लेकिन एक दिन डेटाबेस लीक हो जाता है। हैकर्स क्या देखेंगे? अगर आप पासवर्ड को सादे टेक्स्ट में स्टोर कर रहे हैं — यह आपदा है। अगर आप पुराने md5 का उपयोग कर रहे हैं — यह लगभग वैसा ही है। लेकिन अगर आपने secure hash and salt लगाया है — हैकर्स को सिर्फ बेकार अक्षर दिखेंगे। 2025 में यह सिर्फ एक सुझाव नहीं, बल्कि सुरक्षा का मानक है।

\n\n

इस लेख में हम जानेंगे कि PHP में पासवर्ड को सही तरीके से कैसे हैश करें, आधुनिक एल्गोरिदम, सॉल्ट और सर्वश्रेष्ठ प्रैक्टिसेज के साथ। आप जानेंगे कि पुराने तरीके क्यों खतरनाक हैं, और सुरक्षित पासवर्ड स्टोरेज पर सिर्फ 10 मिनट में कैसे स्विच करें।

\n\n

md5 और sha1 क्यों खतरनाक हैं?

\n\n

कई नए डेवलपर एक ही गलती करते हैं: md5($password) या sha1($password) का उपयोग करना। 2025 में यह सिर्फ खराब प्रैक्टिस नहीं, बल्कि सुरक्षा छेद का सीधा रास्ता है। क्यों?

\n\n
    \n
  • गणना की गति। MD5 और SHA1 गति के लिए बने हैं, सुरक्षा के लिए नहीं। आधुनिक GPU प्रति सेकंड अरबों हैश क्रैक कर सकते हैं।
  • \n
  • सॉल्ट की कमी। अगर दो यूज़र का पासवर्ड एक जैसा है, तो उनके हैश भी एक जैसे होंगे। इससे रेनबो टेबल अटैक आसान हो जाता है।
  • \n
  • कोलिज़न। MD5 में प्रैक्टिकल कोलिज़न पाए गए हैं — दो अलग-अलग इनपुट एक ही हैश देते हैं।
  • \n
\n\n

शुक्र है, PHP में बिल्ट-इन फंक्शन हैं जो ये सारी समस्याएं हल करते हैं। और इसके लिए किसी थर्ड-पार्टी लाइब्रेरी की ज़रूरत नहीं है।

\n\n

password_hash और password_verify: आपका गुप्त हथियार

\n\n

PHP 5.5.0 से, भाषा में दो जादुई फंक्शन आए: password_hash() और password_verify()। ये अपने आप सॉल्ट जनरेट करते हैं, क्रिप्टोग्राफिक रूप से मजबूत एल्गोरिदम का उपयोग करते हैं, और टाइमिंग अटैक से बचाते हैं।

\n\n

सबसे आसान उपयोग का उदाहरण:

\n\n
// पासवर्ड हैश करना\n$password = "MySuperSecureP@ssw0rd!";\n$hash = password_hash($password, PASSWORD_DEFAULT);\necho $hash; // $2y$10$...\n
\n\n

यहाँ क्या हुआ? password_hash फंक्शन ने:

\n
    \n
  • एक रैंडम सॉल्ट जनरेट किया
  • \n
  • सबसे अच्छा एल्गोरिदम चुना (डिफ़ॉल्ट रूप से bcrypt)
  • \n
  • हैश की गणना की
  • \n
  • एक स्ट्रिंग लौटाई जिसमें हैश, सॉल्ट और एल्गोरिदम की जानकारी शामिल है
  • \n
\n\n

पासवर्ड चेक करना भी उतना ही आसान है:

\n\n
// पासवर्ड की जाँच\n$inputPassword = "MySuperSecureP@ssw0rd!";\nif (password_verify($inputPassword, $hash)) {\n    echo "पासवर्ड सही है!";\n} else {\n    echo "पासवर्ड गलत है।";\n}\n
\n\n

ध्यान दें: आपको सॉल्ट को अलग से स्टोर करने की ज़रूरत नहीं है। यह पहले से हैश में ही एम्बेडेड है। यही है secure hash and salt असल में।

\n\n

2025 में कौन सा एल्गोरिदम चुनें?

\n\n

डिफ़ॉल्ट रूप से password_hash bcrypt का उपयोग करता है। यह ज़्यादातर प्रोजेक्ट्स के लिए बढ़िया विकल्प है। लेकिन हमारे पास और भी विकल्प हैं:

\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
एल्गोरिदमकॉन्स्टेंटसुझाव
BcryptPASSWORD_BCRYPTबढ़िया विकल्प, हर जगह सपोर्टेड
Argon2iPASSWORD_ARGON2Iसाइड-चैनल अटैक से सुरक्षित
Argon2idPASSWORD_ARGON2ID2025 में सबसे अच्छा विकल्प
\n\n

Argon2id — PHC (Password Hashing Competition) का विजेता है। यह GPU अटैक और टाइमिंग अटैक दोनों से सुरक्षित है। अगर आपका PHP Argon2 सपोर्ट के साथ बना है (PHP 8.x में यह पहले से मानक है), तो इसका उपयोग करें।

\n\n

हैशिंग की लागत (कॉस्ट) सेट करना

\n\n

Secure hash and salt की एक मुख्य बात है — हैशिंग को धीमा बनाना ताकि

ब्लॉग

पुस्तक अनुशंसाएँ