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