संक्षिप्त उत्तर: एमडी 5 पासवर्ड की तुलना करने के लिए पर्याप्त रूप से जानने का एक तरीका है - एक अद्वितीय फिंगरप्रिंट - वास्तव में पासवर्ड को आसपास रखे बिना।
एक लंबे समय:
MD5 एक फिंगरप्रिंट जनरेटर के बारे में सोचा जा सकता है। आप जितने भी बिट्स ले सकते हैं, और अंत में 128 बिट्स हैं। Md5sum हमेशा किसी भी स्ट्रिंग के लिए समान होगा। लेकिन, यह अनुमान लगाना कठिन है कि किसी भी स्ट्रिंग के लिए एक md5sum क्या होगा। इसे उलटा नहीं किया जा सकता है। आपको हैश से पासवर्ड वापस नहीं मिल सकता है, यह जानकारी दूर फेंक दी जाती है।
MD5 क्यों? आप वास्तविक पासवर्ड संग्रहीत नहीं करना चाहते हैं। अगर मैं आपके DB में टूट सकता हूं, तो मुझे पासवर्ड मिलते हैं। यह असुरक्षित है।
इसलिए मैं एक हैश स्टोर कर सकता हूं। लॉगिन करने पर, मुझे आपके द्वारा टाइप किए गए पासवर्ड का md5sum और db में md5sum मिलता है, देखें कि क्या वह मेल खाता है। फिर, यदि आपको हैश मिल जाता है, तो भी आप पासवर्ड प्राप्त करने के लिए पीछे नहीं जा सकते। आपको हैश मिल गया है, लेकिन सिद्धांत रूप में आपको पासवर्ड नहीं मिल सकता है।
यह सुरक्षित है, लेकिन याद रखें, एक ही पासवर्ड हमेशा उसी md5 को हैश करेगा। 'पासवर्ड' हमेशा 286755fad04869ca523320acce0dc6a4 होगा। अगर मैं db में 286755fad04869ca523320acce0dc6a4 देखता हूं, तो मुझे पता है कि आपका पासवर्ड 'पासवर्ड' है। इसलिए एक तकनीक यह है कि आप अपने पासवर्ड में थोड़ा सा नमक मिलाएं। तो, मेरे लिए कहो, मेरा नमक चुना जाना है, ओह इडुनो, '1 बी 24'। मैं इसे md5 डेटा में जोड़ता हूं, जो मुझे c4f8469e00c67d70dfbaa91cdf948fa8 देता है। जब मैं पासवर्ड स्टोर करता हूं, तो शायद मैं 1b24 स्टोर करता हूं। c4f8469e00c67d70dfbaa91cdf948fa8। फिर जब आप 'पासवर्ड' टाइप करते हैं, तो मैं db में देखता हूं कि मुझे 1b24 जोड़ने की जरूरत है, और मुझे मैच मिलेगा।
MD5 वास्तव में इसके लिए उपयोग नहीं किया जाता है। वहाँ नए (SHA1 की तरह) जो बिट्स को बेहतर तरीके से फेंकते हैं। कभी-कभी आप कई दौर से गुजरते हैं। यह इन उंगलियों के निशान की विशाल सूची उत्पन्न करने के लिए कड़ी मेहनत करके सुरक्षा जोड़ता है - यह गणना करने में बहुत लंबा समय लेता है।
a-z
) 5.2 (A-Z
) +10 (0-9
) +32 ([]{};:'"\|,<.>/?~!@£$%^&*()-_= +
) व्यवहार्य वर्णों के एक वर्ण सेट को देखते हुए , यह बिना टकराव के 19 वर्णों के पासवर्ड के लिए पर्याप्त संभव मान है।