2009-06-08 11 views
13

क्या PHP में पूर्णांक हैश करने के लिए स्ट्रिंग करने के लिए फ़ंक्शन में अंतर्निहित है, कुछ ऐसा करना मुश्किल है?php हैश फॉर्म स्ट्रिंग को पूर्णांक

अब, मैं मैं शायद एक md5 कर रही है, और एक मूलांक 16 नंबर के रूप में यह की सबस्ट्रिंग इलाज के साथ भाग प्राप्त कर सकते हैं पता है, लेकिन मैं में बनाया कुछ के लिए देख रहा हूँ।

धन्यवाद।

उत्तर

30

मुझे लगता है कि सबसे अच्छा शर्त एक base_convert($hash, 16, 10) करने के लिए अपने तार का एक हैश प्राप्त करने के लिए, और फिर एक पूर्णांक हैश प्राप्त करने के लिए एक मानक हैश [या तो md5() या sha1()] चुना है, और है कि एक पूर्णांक हैश में अपने हैश परिवर्तित करना चाहिए।

आशा है कि मैं आपकी समस्या को सही ढंग से समझ रहा हूं।

2

मुझे नहीं लगता कि आपको इसके लिए कुछ भी बनाया जाएगा, लेकिन md5() के साथ आपका विचार वास्तव में बहुत अच्छा है। मैं कल्पना नहीं कर सका कि आपको कुछ और क्यों चाहिए: तेजी से नहीं हो सकता है, और अधिक स्थिर नहीं हो सकता है ...

3

मुझे लगता है कि आप इस समस्या को दो चरणों में आने में सही रास्ते पर हैं।

सबसे पहले, आपको संभवतः एमडी 5 हैश के साथ रहना चाहिए ताकि आपकी "रिवर्स टू रिवर्स" आवश्यकता पूरी हो सके।

दूसरा, आप एमडी 5 आउटपुट को "इसे एक पूर्णांक में परिवर्तित करें" फ़ंक्शन में इनपुट के रूप में ले सकते हैं।

दूसरे भाग के लिए, आप वास्तव में क्या चल रहे हैं? क्या यह है एक पूर्णांक होने के लिए? या सिर्फ प्रिंट करने योग्य पात्र? यदि आप अपने हैश को किसी डेटाबेस में स्टोर करने के लिए देख रहे हैं, तो आप तार पर संचारित कर सकते हैं, या किसी अन्य कारण से एमडी 5 स्ट्रिंग नहीं करेगा, कन्वर्टुएनकोड फ़ंक्शन आपके लिए काम कर सकता है: http://us.php.net/manual/en/function.convert-uuencode.php

एक और चौराहे हैकिश दृष्टिकोण आपके हैश का बाइनरी मान प्राप्त करना होगा, और इसे http://us.php.net/manual/en/function.bindec.php का उपयोग करके दशमलव में परिवर्तित करना होगा, हालांकि, मैंने कभी यह कोशिश नहीं की है और मुझे यकीन नहीं है कि यह आपके जैसा काम करेगा या नहीं।

संबंधित मुद्दे