How would I translate this C# code into PHP? -
मुझे निम्न C # कोड के PHP संस्करण की आवश्यकता है:
स्ट्रिंग तिथिसंस = "2010 -02-01 "; स्ट्रिंग साइटआईडी = "bash.org"; स्ट्रिंग साझासईचर = "12345"; // मेरे सामान पर एक ही संयोजन! System.Security.Cryptography का उपयोग कर; MD5CryptoServiceProvider x = नया MD5CryptoServiceProvider (); बाइट [] dataBytes = System.Text.Encoding.ASCII.GetBytes (string.Format ("{0} {1} {2}", तारीख से, साइटआईडी, साझा किए गए गुप्त)); स्ट्रिंग परिणाम = बिट कॉर्नर। टॉस्ट्रिंग (x.ComputeHash (डेटाबॉइट्स));
... यह कोड स्निपेट अपूर्ण प्रतीत होता है लेकिन यह है जो मुझे लगता है कि हो रहा है:
-
जुड़ाव तिथि, साइटआईड, और साझा किए गए गुप्त चोरी करने वाली जब्ती।
-
???
-
उस स्ट्रिंग को एएससीआई एन्कोडेड बाइट सरणी में कनवर्ट करना।
-
उस सरणी के एमडी 5 हैश ले रहा है।
यह रहस्यमय बिट कन्वर्टर ऑब्जेक्ट एमडी 5 हैशेड सरणी को हेक्साडेसिमल संख्याओं की एक स्ट्रिंग में परिवर्तित करते हुए प्रतीत होता है । उपर्युक्त डॉक्टर के अनुसार, परिणाम का मान कुछ दिखना चाहिए: "6 डी -9 9-ए-बी 6-73-डी 8-10 -79-बीसी -4 एफ-ईई -51-ए 4-84-15-डी 8"
किसी भी मदद की सराहना की जाती है !!
इसे पहले शामिल करने के लिए भूल गए यहां मैंने जो कुछ लिखा है, उसका PHP संस्करण यहां है:
$ date_since = "2010-02-01"; $ Site_id = "bash.org"; $ Shared_secret = "12345"; $ Initial_token = $ date_since। $ Site_id। $ Shared_secret; $ Ascii_version = array (); विदेशी मुद्रा ($ i = 0; $ i & lt; strlen ($ initial_token); $ i ++) {$ ascii_version [] = ord (उपस्ट्रेट ($ initial_token, $ i, 1)); } $ Md5_version = md5 (जुड़ें ("", $ ascii_version)); $ Hexadecimal_bits = array (); विदेशी मुद्रा ($ i = 0; $ i & lt; strlen ($ md5_version); $ i ++) {// टोडो यहां हेक्साडेसिमल को कन्वर्ट करते हैं? $ हेक्साडेसिमल_बिट्स [] = बिन 2 हेक्स (उपस्ट्रॉस्ट ($ एमडी 5_वर्सन, $ i, 1)); } $ Result = join ("-", $ hexadecimal_bits);
मुझे लगता है कि यह आपके लिए काम करेगा ऐसा लगता है कि MD5CryptoServiceProvider :: ComputeHash पद्धति 16 बाइट्स की एक सरणी देता है, 32 अक्षर की कोई स्ट्रिंग नहीं होती है, जैसे सामान्य PHP md5 ()
फ़ंक्शन। हालांकि, PHP के md5 ()
में एक दूसरा वैकल्पिक पैरामीटर है, जो "कच्चे आउटपुट" को बाध्य करता है, जो करता है ComputeHash ()
के आउटपुट के अनुरूप होता है।
$ date_since = "2010-02-01"; $ Site_id = "bash.org"; $ Shared_secret = "12345"; $ Initial_token = $ date_since। $ Site_id। $ Shared_secret; // रॉ फॉरमेट एमडी 5 हैश प्राप्त करें // एमडी 5 क्रिप्टो सर्विस प्रोवाइडर :: कंप्यूटहाश $ str = md5 ($ initial_token, true) के आउटपुट से मेल खाती है; $ लेन = स्ट्रेलन ($ str); $ Hex = array (); ($ I = 0; $ i & lt; $ len; $ i ++) {// बाइट को हेक्स स्ट्रिंग प्रस्तुति में परिवर्तित करें (शून्य के साथ गठबंधन बाएं) $ हेक्स [] = स्ट्रैपैड (डिकहेक्स (ord ($ str [$ i ])), 2, '0', STR_PAD_LEFT); } // डंप आउटपुट इको फ्लेट ("-", $ hex); // आउटपुट fe-0d-58-fd-5f-3d-83-fe-0f-6a-02-b4-94-0c-aa-7b
Comments
Post a Comment