मैं जावास्क्रिप्ट में लागू sha1 एल्गोरिदम की तुलना में कुछ परीक्षण चला रहा हूं - http://pajhome.org.uk/crypt/ से प्राप्त हुआ - सी # में इसके कार्यान्वयन के साथ।जावास्क्रिप्ट में SHA1 बेस 64 एल्गोरिदम और सी #
सी # का उपयोग करना { 'विधि': 'people.get'} के लिए हैश प्राप्त करने के लिए मैं इस बयान का उपयोग कर रहा:
Convert.ToBase64String(new System.Security.Cryptography.SHA1CryptoServiceProvider().ComputeHash(Encoding.ASCII.GetBytes("{'method':'people.get'}")));
जो मुझे Qy95a0ShZqhbNdt6IF8qNf72jX0=
देता जावास्क्रिप्ट में मैं लगभग मिल एक ही: Qy95a0ShZqhbNdt6IF8qNf72jX0
कथन का उपयोग:
b64_sha1("{'method':'people.get'}");
जावास्क्रिप्ट मामले में, हैश एक बराबर (=) चिह्न के साथ अंत नहीं है।
क्या यह अंतर मुझे सर्वर के विरुद्ध प्रमाणीकरण में परेशानी का कारण बन सकता है?
मेरे मामले में, जैसा कि आप में से कई जानते हैं, हैश मैं मान रहा हूं कि वाक्य http बॉडी के अंदर जाता है और सर्वर इसे देखेगा।
धन्यवाद
ठीक है, उस जानकारी के आधार पर मैंने देखा है कि = चिह्न, जैसा कि आपने बताया है, संदेश को पैडिंग के लिए उपयोग किया जाता है। धन्यवाद – Andres
@ एंड्रेस: आप pajhome.org.uk से 'sha1.js' फ़ाइल के लाइन 15 को पैडिंग कैरेक्टर के रूप में' = 'का उपयोग करने के लिए अपडेट कर सकते हैं। – LukeH
हां, जबकि मैं अपना उत्तर लिख रहा था, आप इस टिप्पणी को लिख रहे थे। धन्यवाद :) – Andres