एक नमक एक ऐसा मान है जो एक पासवर्ड (या अन्य रहस्य) में जोड़ा जाता है जिसे आप एक तरह से हैश करना चाहते हैं। इसका मतलब यह है कि यह पासवर्ड के पहले, बाद में या कहीं भी हो सकता है, जब तक कि इसकी स्थिति और मान दिए गए पासवर्ड के अनुरूप हो।
यह क्या करता है यह शब्दकोश हमलों को कम करता है - मूल रूप से बिना नमक के पूर्व-हैश किए गए सामान्य पासवर्ड के शब्दकोश - एक तरह से पासवर्ड "अनुमान" करने के लिए उपयोग किए जाने से जब तक हमलावर हैश को नहीं जानता है। यदि प्रत्येक पासवर्ड का एक अलग हैश होता है तो एक हमलावर के लिए आपके पासवर्ड को क्रैक करने के लिए अनुकूलित एक शब्दकोश बनाना बहुत मुश्किल हो जाता है (उन्हें प्रत्येक अलग नमक के लिए एक शब्दकोश की आवश्यकता होगी और उन्हें यह भी जानना होगा कि प्रत्येक पासवर्ड में नमक कहाँ रखा गया था) )।
बेशक यह सब लागू होने के लिए एक हमलावर के पास आपके पासवर्ड का हैश पहले स्थान पर होना चाहिए। इसका कुछ इनपुट प्रॉम्प्ट के माध्यम से अनुमान लगाकर पासवर्ड पर हमला करने से कोई लेना-देना नहीं है।
MySQL के बारे में विशेष रूप से यदि आप पासवर्ड हैशिंग करते समय नमक प्रदान करते हैं, तो सुनिश्चित करें कि आपने रिकॉर्ड किया है कि वह नमक कहीं क्या था। फिर जब कोई उपयोगकर्ता प्रमाणीकरण का प्रयास करता है तो आप उस रिकॉर्ड किए गए नमक मान को पासवर्ड के साथ जोड़ देते हैं (कॉल के दौरान crypt
उदाहरण के लिए) और यदि परिणामी हैश मेल खाता है तो उन्होंने सही पासवर्ड दर्ज किया है। (ध्यान दें कि किसी भी समय पासवर्ड की हैशिंग को उलट नहीं किया जाता है, इस प्रकार एक तरह से।)