अपडेट करें:पासवर्ड स्टोर करने के लिए बस हैश फ़ंक्शन का उपयोग करना पर्याप्त मजबूत नहीं है। आपको इस थ्रेड पर गाइल्स का जवाब पढ़ना चाहिए। अधिक विस्तृत स्पष्टीकरण के लिए।
पासवर्ड के लिए, Bcrypt या Argon2i जैसे कुंजी-मजबूत हैश एल्गोरिथम का उपयोग करें। उदाहरण के लिए, PHP में, password_hash() फ़ंक्शन , जो डिफ़ॉल्ट रूप से Bcrypt का उपयोग करता है।
$hash = password_hash("rasmuslerdorf", PASSWORD_DEFAULT);
परिणाम निम्न के समान 60-वर्ण की स्ट्रिंग है (लेकिन अंक अलग-अलग होंगे, क्योंकि यह एक अद्वितीय नमक उत्पन्न करता है)।
$2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a
SQL डेटा प्रकार का उपयोग करें CHAR(60)
बीक्रिप्ट हैश के इस एन्कोडिंग को स्टोर करने के लिए। ध्यान दें कि यह फ़ंक्शन हेक्साडेसिमल अंकों की एक स्ट्रिंग के रूप में एन्कोड नहीं करता है, इसलिए हम इसे बाइनरी में स्टोर करने के लिए आसानी से अनहेक्स नहीं कर सकते हैं।
अन्य हैश फ़ंक्शंस में अभी भी उपयोग हैं, लेकिन पासवर्ड संग्रहीत करने के लिए नहीं, इसलिए मैं मूल उत्तर नीचे रखूंगा, जो 2008 में लिखा गया था।
यह आपके द्वारा उपयोग किए जाने वाले हैशिंग एल्गोरिदम पर निर्भर करता है। इनपुट की परवाह किए बिना हैशिंग हमेशा समान लंबाई का परिणाम देता है। हेक्साडेसिमल अंकों की एक श्रृंखला के रूप में, पाठ में बाइनरी हैश परिणाम का प्रतिनिधित्व करना विशिष्ट है। या आप UNHEX()
हेक्स अंकों की एक स्ट्रिंग को आधे से कम करने के लिए कार्य करता है।
- MD5 128-बिट हैश मान उत्पन्न करता है। आप CHAR(32) या BINARY(16) . का उपयोग कर सकते हैं
- SHA-1 160-बिट हैश मान उत्पन्न करता है। आप CHAR(40) या BINARY(20) . का उपयोग कर सकते हैं
- SHA-224 एक 224-बिट हैश मान उत्पन्न करता है। आप CHAR(56) या BINARY(28) . का उपयोग कर सकते हैं
- SHA-256 256-बिट हैश मान उत्पन्न करता है। आप CHAR(64) या BINARY(32) . का उपयोग कर सकते हैं
- SHA-384 एक 384-बिट हैश मान उत्पन्न करता है। आप CHAR(96) या BINARY(48) . का उपयोग कर सकते हैं
- SHA-512 एक 512-बिट हैश मान उत्पन्न करता है। आप CHAR(128) या BINARY(64) . का उपयोग कर सकते हैं
- BCrypt एक कार्यान्वयन-निर्भर 448-बिट हैश मान उत्पन्न करता है। आप CHAR(56), CHAR(60), CHAR(76), BINARY(56) या BINARY(60) की आवश्यकता हो सकती है
2015 तक, NIST SHA-256 या का उपयोग करने की अनुशंसा करता है उच्च इंटरऑपरेबिलिटी की आवश्यकता वाले हैश फ़ंक्शन के किसी भी एप्लिकेशन के लिए। लेकिन एनआईएसटी पासवर्ड को सुरक्षित रूप से संग्रहीत करने के लिए इन सरल हैश फ़ंक्शन का उपयोग करने की अनुशंसा नहीं करता है।
कम हैशिंग एल्गोरिदम के अपने उपयोग हैं (जैसे किसी एप्लिकेशन के लिए आंतरिक, इंटरचेंज के लिए नहीं), लेकिन वे हैं इसे क्रैक करने योग्य माना जाता है ।