मेरे उपयोगकर्ता डेटाबेस तालिका में, मैं आईडी के रूप में एक उपयोगकर्ता का ईमेल पता का MD5 हैश लेने के रूप में MD5 हैश का प्रतिनिधित्व करते हैं।एक पूर्णांक
उदाहरण: email([email protected]) = id(d41d8cd98f00b204e9800998ecf8427e)
दुर्भाग्य से, मैं अब पूर्णांक मान के रूप में आईडी का प्रतिनिधित्व करने के लिए है - क्रम एक API जहां आईडी केवल एक पूर्णांक हो सकता है उपयोग करने में सक्षम होने के लिए।
अब मैं एक तरह से एक डिकोड भेजने इसे फिर से जब प्राप्त करने के लिए एक पूर्णांक में आईडी एन्कोड करने के लिए की तलाश में हूँ। मैं ये कैसे करूं?
मेरे विचारों अब तक:
convert_uuencode()
औरconvert_uudecode()
MD5 हैश- MD5 हैश के हर चरित्र को बदलने के लिए अपने
ord()
मूल्य
किस तरीके से बेहतर है के द्वारा? क्या आप इसे करने के बेहतर तरीके जानते हैं?
मुझे आशा है कि आप मेरी मदद कर सकते हैं। अग्रिम बहुत बहुत धन्यवाद!
आप कोई अन्य, संभवतः प्रशिक्षु, मूल्य है अपने उपयोगकर्ताओं की पहचान करने के लिए? खैर, आपके पास अपनी उपयोगकर्ता तालिका के लिए कम से कम एक पीके होना चाहिए। – Malax
@ मैलाक्स: हां, प्राथमिक कुंजी आईडी फ़ील्ड है जिसमें एमडी 5 हैश है। क्या यह एक बुरा समाधान है? – caw
आपकी उपयोगकर्ता तालिका की प्राथमिक कुंजी के रूप में MD5 हैश का उपयोग करना आम तौर पर एक अच्छा विचार नहीं है। एक ऑटो-वृद्धि/सीरियल पूर्णांक आईडी 4-8 बाइट है। एक एमडी 5 हैश 32 बाइट्स है। पूर्णांक मानों पर तुलना (उदा।हर बार जब आप उस तालिका में शामिल होते हैं, या उससे एक पंक्ति चुनें) 32 बाइट तारों की तुलना में कई गुना तेज होगा, और पूर्णांक मानों को कम संग्रहण की आवश्यकता होगी। और वास्तव में ... यदि आप एक स्ट्रिंग मान का उपयोग करना चाहते हैं, तो ईमेल पते का उपयोग क्यों न करें? यह ज्यादातर समय 32 बाइट या उससे कम होने जा रहा है। –