2016-02-12 23 views
8

के साथ कंप्यूटिंग SHA1 मुझे एक एएसपी.NET 5 आरसी 1 (जल्द ही एएसपी.नेट कोर होना) वेब एप्लिकेशन प्रोजेक्ट मिला है।ASP.NET कोर

इसे SHA1 हैश की गणना करने की आवश्यकता है।

विभिन्न SHA1 सबक्लास उपलब्ध हैं और डीएनएक्स 4.5.1 के तहत निर्मित हैं, लेकिन ऐसा लगता है कि डीएनएक्स कोर 5.0 के तहत कोई भी उपलब्ध कार्यान्वयन नहीं है।

क्या मुझे उस कोड को लाने के लिए संदर्भ जोड़ना है, या यह अभी तक .NET कोर के लिए उपलब्ध नहीं है?

this article के अनुसार:

नेट कोर पुस्तकालयों का एक सेट, "CoreFX" कहा जाता है, और एक छोटे, अनुकूलित क्रम, "CoreCLR" कहा जाता है के होते हैं।

https://github.com/dotnet/corefx/tree/master/src/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography

हालांकि CoreCLR में उपवर्गों देखते हैं आपकी अपेक्षानुसार, mscorlib भीतर:

पर्याप्त ज़रूर, CoreFX रेपो में, वहाँ SHA1 का कोई उपवर्गों हैं

https://github.com/dotnet/coreclr/tree/43b39a73cbf832ec13ec29ed356cb75834e7a8d7/src/mscorlib/src/System/Security/Cryptography

कोरक्लर और कोरफैक्स के बीच ओवरलैप क्यों है? क्या यह mscorlib कोड .NET कोर प्रोजेक्ट्स के लिए उपलब्ध नहीं है?

System.Security.Crytpography.Algorithms package on NuGet का वर्णन कहते हैं:

हैशिंग, एन्क्रिप्शन और हस्ताक्षर करने के कार्यों सहित क्रिप्टोग्राफिक एल्गोरिथम, के लिए आधार प्रकार प्रदान करता है।

क्या कोई अन्य पैकेज है जिसमें वास्तविक एल्गोरिदम शामिल हैं न केवल बेस क्लास? क्या यह ऐसा कुछ है जिसे अभी तक बंद नहीं किया गया है? क्या मोनो के पास कहीं भी आप एपीआई और रोडमैप की स्थिति की समीक्षा कर सकते हैं?

+1

CoreCLR कोर क्रम जबकि CoreFX पुस्तकालयों हो रहा है। यदि SHA1 * रनटाइम * का हिस्सा है, तो आप इसका उपयोग करने में सक्षम होना चाहिए। क्या आपने कारखाने के तरीकों के माध्यम से एल्गोरिदम के कार्यान्वयन को बनाने की कोशिश की है? –

+0

@ पानागियोटिस कानावोस, हे, पूरी तरह फैक्ट्री विधि को याद करते हैं (इसके बावजूद)। उसके साथ, मेरा कोड संकलित करता है। यदि आप इसे उत्तर के रूप में पोस्ट करना चाहते हैं, तो मैं इसे स्वीकार करूंगा। –

उत्तर

25

System.Security.Cryptography.Algorithms nuget पैकेज जोड़ें।

फिर

var sha1 = System.Security.Cryptography.SHA1.Create(); 

var hash = sha1.ComputeHash(myByteArray)