इसे हल करने के लिए, हैश फ़ंक्शन का उपयोग करना सुविधाजनक है जो प्रत्येक पंक्ति (हैश) के लिए एक अद्वितीय मान लौटाता है।
C++11 में हैश प्राप्त करने के लिए एक अंतर्निहित सुविधा है: hash।  < br /> भविष्य में, हैश की संख्या की गणना करने के लिए, unordered_map हैश तालिका का उपयोग करना बेहतर होता है, जो C++ 11 में भी दिखाई देता है। आप मानचित्र का उपयोग करने के बारे में डायनेमिक डेटा स्ट्रक्चर -> साहचर्य सरणियाँ: मानचित्र।

स्ट्रिंग "परीक्षण" से हैश प्राप्त करने का एक उदाहरण:

का उपयोग करके उत्पन्न किया गया
<पूर्व शैली = "मार्जिन-बाएं: 0 पीएक्स; मार्जिन-दाएं: 0 पीएक्स"> हैश<string> hash_fn; size_t str_hash = hash_fn("test" ); cout<<str_hash;

परिणाम होगा: "2949673445", इसलिए प्रत्येक अद्वितीय स्ट्रिंग से आप एक अद्वितीय हैश प्राप्त कर सकते हैं जिसका उपयोग  unordered_map में एक कुंजी के रूप में किया जा सकता है।

किसी स्ट्रिंग को हैश करना किसी संख्या के रूप में एक स्ट्रिंग का प्रतिनिधित्व है, प्रत्येक स्ट्रिंग के लिए अद्वितीय (हम मान लेंगे कि टकराव की संभावना नगण्य है)। यह आपको डेटाबेस में किसी भी महत्वपूर्ण डेटा (जैसे पासवर्ड) को स्ट्रिंग्स के रूप में नहीं, बल्कि संख्याओं के रूप में संग्रहीत करने की अनुमति देता है। यदि कोई हमलावर पासवर्ड डेटाबेस तक पहुँच प्राप्त करता है, तो यह आपको पासवर्ड की सुरक्षा करने की अनुमति देता है, क्योंकि उसे पासवर्ड स्वयं नहीं मिलेंगे, लेकिन केवल उनका संख्यात्मक प्रतिनिधित्व होगा, और इसके हैश द्वारा एक स्ट्रिंग प्राप्त करना लगभग असंभव है (विशेष रूप से हैशिंग एल्गोरिथ्म को जाने बिना) ). 
प्रोग्रामिंग प्रतियोगिता समस्याओं में बहुपद हैश का सबसे अधिक उपयोग किया जाता है।
स्ट्रिंग S के हैश फ़ंक्शन को निर्धारित करने के सर्वोत्तम तरीकों में से एक इस प्रकार है:
ज(एस)  =  एस[0]  +  एस[1] * पी  +  एस[2] * पी^2  +  एस[3] * पी^3  +  ...  +  एस[एन] * पी^एन