एमडी 5 और एसएचए 1 दोनों को असुरक्षित माना जाता है, एसएचए -1 बेहतर होने के साथ। हालांकि, वहाँ 2 चीजें हैं जो आप विचार करना चाहिए:
द्वारा "असुरक्षित", वे कहते हैं कि यह गणितीय पूर्व टुकड़ों में बांटा मूल्य निर्धारित करने के लिए जानवर बल की तुलना में आसान है कहने के लिए मतलब है। कभी-कभी इसका मतलब है कि वे इसे एक अरब गणना से 900 मिलियन तक काट सकते हैं, दूसरी बार यह काफी कम है। यह मेरे बिंदु # 2 के रूप में असुरक्षित के रूप में कहीं भी नहीं है।
क्योंकि आप एक हैश बना रहे हैं, हैकर के लिए सामान्य पासवर्ड से भरा टेबल पॉप्युलेट करके और उसी हैश एल्गोरिदम के माध्यम से इसे चलाने के लिए अपने डेटाबेस के पासवर्ड निर्धारित करना आसान है, भले ही आप किस का उपयोग करते हैं।इसे इंद्रधनुष तालिका कहा जाता है।
उदाहरण के लिए, बहुत से लोग अपने पासवर्ड के रूप में "पासवर्ड" और "जॉन" का उपयोग करते हैं। MD5 में, इन दो पासवर्ड हमेशा उत्पन्न करने के लिए: पासवर्ड: 5f4dcc3b5aa765d61d8327deb882cf99 जॉन: 527bd5b5d689e2c32ae974c6229ff785
तो अगर आप सिर्फ MD5 अपने पासवर्ड, और किसी के लिए पर्याप्त अनुभवहीन बनाने के लिए है कि उनके पासवर्ड, यह शायद समझौता किया जा होगा अगर एक हैकर नियंत्रित अपने डेटाबेस और एक इंद्रधनुष तालिका के खिलाफ भाग गया।
हालांकि, अगर आप प्रत्येक प्री-हैश किए गए मान, जैसे "password12345" और "johnxyz" में कुछ प्रकार का गड़बड़ जोड़ते हैं तो आपको 2 पूरी तरह से अलग हैंश मिलते हैं जो उपरोक्त के समान नहीं होंगे। इसे नमक मूल्य कहा जाता है, और यह इंद्रधनुष तालिकाओं को प्रभावी होने से रोकता है।
मेरी सिफारिश एसएचए एल्गोरिदम के उच्चतम स्तर का उपयोग करना है जो आप अपनी प्रोग्रामिंग भाषा में कर सकते हैं, और हैश मूल्य के खिलाफ हैश (यदि आप चाहें तो वर्तमान समय हैशिंग करके "यादृच्छिक" बना सकते हैं) आप डेटाबेस रिकॉर्ड में हैश पासवर्ड के साथ स्टोर करते हैं।
डीबी कॉलम: उपयोगकर्ता नाम | पासवर्ड | नमक
यह किसी भी सुरक्षित प्रणाली का सबसे सुरक्षित सिस्टम नहीं है, लेकिन यह आपके लिए काम करेगा।
"कार्गो पंथ" उत्तरों से सावधान रहें कि दावा है कि एक हैश एल्गोरिदम "टूटा हुआ" या "दोषपूर्ण" है, जिसके बिना एल्गोरिदम दोषपूर्ण है। यदि आप किसी डेटाबेस में पासवर्ड के सादे SHA-1 हैंश स्टोर करते हैं, तो आपका दृष्टिकोण MD5 के साथ त्रुटिपूर्ण है (http://en.wikipedia.org/wiki/Rainbow_table देखें)। मेरा मानना है कि हैश टकराव उत्पन्न करने के लिए आवश्यक बकाया डेटाबेस में उपयोगकर्ता के पासवर्ड सुरक्षित रूप से संग्रहीत करने के उपयोग के मामले में बहुत महत्वपूर्ण नहीं है। सही जवाब नमक, चाबी हैश, पीबीकेडीएफ 2, आदि का उपयोग करने के साथ होता है – dtb
+1 - यह एक छोटे से छोटे प्रश्न का एक बड़ा उदाहरण है जो सतह पर पूरी तरह से निर्दोष लगता है लेकिन वास्तव में एक शानदार प्रवेश बिंदु है बहुत बड़ा, बहुत अस्पष्ट और बहुत महत्वपूर्ण खानभूमि। –