मान लीजिए हमारे पास एक लॉगिन सिस्टम है जहां उपयोगकर्ताओं को एक अद्वितीय userID प्रदान करना आवश्यक है ताकि उनकी विशिष्ट पहचान हो सके। और स्पष्ट सुरक्षा कारणों से, हम userID को अस्पष्ट करना चाहते हैं ताकि संख्या का अनुमान लगाना काफी कठिन हो।
मूल रूप से, हमें दो फ़ंक्शन लिखने की आवश्यकता है।
encode(),
decode()
पहला फ़ंक्शन हमारे संख्या इनपुट को बेस 26 वर्ण मैपिंग में बदलना चाहिए। और दूसरा फ़ंक्शन वर्ण मैपिंग को वापस मूल संख्या में बदलना चाहिए।
हालांकि यह बहुत व्यावहारिक नहीं है क्योंकि अधिकांश हैशिंग एल्गोरिदम टू-फ्रो रूपांतरण प्रदान नहीं करते हैं, लेकिन इस प्रश्न के उद्देश्य के लिए, हम उस पर विचार नहीं कर रहे हैं।
उदाहरण के लिए − यदि संख्या 31 है, तो
encode(31) = 'ea' और, decode('ea') = 31उदाहरण
इसके लिए कोड होगा −
const num = 31; const encode = num => { let res = ''; const legend = 'zabcdefghijklmnopqrstuvwxy'; while(num){ const rem = num % (legend.length); res += legend[rem]; num = (Math.floor(num / legend.length)); }; return res; }; const decode = str => { let num = 0; const legend = 'zabcdefghijklmnopqrstuvwxy'; for(let i = 0; i < str.length; i++){ const ind = legend.indexOf(str[i]); num += (ind * Math.pow(legend.length, i)); }; return num; } console.log(encode(num)); console.log(decode('ea'));आउटपुट
और कंसोल में आउटपुट होगा −
ea 31