मैंने एक दिलचस्प मुद्दा में भाग लिया है .. ऐसा लगता है कि "HMACSHA256" हैश के लिए ComputeHash() निश्चित रूप से व्यवहार नहीं कर रहा है .. यदि मैं हैश एल्गोरिदम का उपयोग करके हैश एल्गोरिदम के दो उदाहरण बनाते हैं। क्रिएट ("HMACSHA256") .. और चलाएं ComputeHash, मुझे दो अलग-अलग परिणाम मिलते हैं .. नीचे एक उदाहरण स्थिर वर्ग है जो इस व्यवहार को प्रदर्शित करता है।ComputeHash क्यों निश्चित रूप से कार्य नहीं कर रहा है?
internal static string HashPassword(byte[] bAll)
{
using (HashAlgorithm s = HashAlgorithm.Create("HMACSHA256"))
{
return Convert.ToBase64String(s.ComputeHash(bAll));
}
}
मैं भी कॉल गैर स्थिर बनाने के लिए कोशिश की है (वास्तव में यह गैर स्थिर शुरू कर दिया है, और मैं डबल और ट्रिपल है और quadrudruple मेरी इनपुट सरणी .. जाँच की अपनी पूरी तरह से प्रत्येक कॉल पर एक ही .. मैं यहां तक कि immidiate खिड़की की तरह में सामान किया है:
Convert.ToBase64String(HashAlgorithm.Create("HMACSHA256").ComputeHash(bAll)
और दो अलग अलग हैश रिटर्न विधि में एक ब्रेकपाइंट के माध्यम से immidiates विंडो में दो बार है कि चल रहा है ..
मैं जानता हूँ कि हैश नियतात्मक होने के लिए लगता है। तो क्या देता है? चलने के साथ कुछ चल रहा है एक डीबगर में? या कोई अन्य विचार? वास्तव में इस वक्त सिर्फ दो शब्दों के लिए अजीब है :-P ..
धन्यवाद जोश
क्या आपके पास कोई समस्या नहीं है जो इस समस्या को प्रदर्शित करता है? क्या कॉल के बीच या उसके दौरान 'बॉल' बदल रहा है? –
एचएमएसी एक कुंजी हैश है।मुझे आपके उदाहरण कोड में कुंजी दिखाई नहीं दे रही है। मेरा मानना है कि यदि आप स्पष्ट रूप से निर्दिष्ट नहीं करते हैं तो कुंजी यादृच्छिक रूप से सेट की जाती है। – dtb
कॉल के बीच कुछ भी नहीं बदलता .. जैसा कि मैंने कहा है कि मैंने इसे immidiates विंडो से भी किया है .. यहां मेरी इमिडिएट्स विंडो से 4 कॉल हैं .. हाँ वे सही नहीं हैं क्योंकि आपको हैश एल्गोरिदम का निपटान करना चाहिए, लेकिन परिणाम हैं immidiates खिड़की या विधि के माध्यम से ही। (मैं उन्हें अगली टिप्पणी में शामिल करूंगा, क्योंकि मेरे पास उन्हें पेस्ट करने की प्रतिलिपि बनाने की जगह नहीं है) –