मान लीजिए कि हमारे पास एक लॉगिन प्रणाली है जहां उपयोगकर्ताओं को विशिष्ट रूप से उनकी पहचान करने के लिए एक अद्वितीय उपयोगकर्ता आईडी प्रदान करने की आवश्यकता होती है। और स्पष्ट सुरक्षा कारणों से, हम उपयोगकर्ता आईडी को अस्पष्ट करना चाहते हैं ताकि संख्या का अनुमान लगाना काफी कठिन हो।
असल में, हमें दो फंक्शन लिखने होते हैं।
-
सांकेतिक शब्दों में बदलना (),
-
डिकोड ()
पहला फंक्शन हमारे नंबर इनपुट को बेस 26 अल्फाबेट मैपिंग में बदलना चाहिए। और दूसरा फ़ंक्शन वर्णमाला मानचित्रण को वापस मूल संख्या में परिवर्तित करना चाहिए।
हालांकि यह बहुत व्यावहारिक नहीं है क्योंकि अधिकांश हैशिंग एल्गोरिदम आने-जाने के लिए रूपांतरण प्रदान नहीं करते हैं, लेकिन इस प्रश्न के उद्देश्य से, हम इस पर विचार नहीं कर रहे हैं।
उदाहरण के लिए - यदि संख्या 31 है, तो,
encode(31) = 'ea' and, 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