.snk फ़ाइल strong name to a .NET assembly लागू करने के लिए उपयोग की जाती है। इस तरह एक मजबूत नाम
एक साधारण पाठ नाम, संस्करण संख्या, और संस्कृति के बारे में जानकारी के होते हैं ( यदि) एक सार्वजनिक कुंजी और डिजिटल हस्ताक्षर प्लस।
एसएनके में एक अद्वितीय कुंजी जोड़ी है - एक निजी और सार्वजनिक कुंजी जिसका उपयोग यह सुनिश्चित करने के लिए किया जा सकता है कि आपके पास असेंबली के लिए एक अद्वितीय मजबूत नाम है। जब असेंबली दृढ़ता से नामित होती है, तो असेंबली की सामग्री से "हैश" बनाया जाता है, और हैश को निजी कुंजी से एन्क्रिप्ट किया जाता है। फिर इस हस्ताक्षरित हैश को एसएसके से सार्वजनिक कुंजी के साथ असेंबली में रखा गया है।
बाद में, किसी को दृढ़ता से नाम विधानसभा की अखंडता, वे विधानसभा की सामग्री की एक हैश निर्माण, और हैश कि विधानसभा के साथ आया था डिक्रिप्ट करने के लिए विधानसभा से सार्वजनिक कुंजी का उपयोग को सत्यापित करना होगा जब - यदि दो हैश मैच हैं, तो असेंबली सत्यापन पास हो जाता है।
यह सुनिश्चित करने के लिए असेंबली को सत्यापित करने में सक्षम होना महत्वपूर्ण है कि कोई भी दुर्भावनापूर्ण व्यक्ति के लिए असेंबली को स्वैप नहीं करता है जो पूरे एप्लिकेशन को विचलित कर देगा। यही कारण है कि गैर-मजबूत नामित असेंबली इस तरह भरोसेमंद नहीं हैं कि दृढ़ता से नामित असेंबली हैं, इसलिए उन्हें जीएसी में नहीं रखा जा सकता है। इसके अलावा, ट्रस्ट की एक श्रृंखला है - आप दृढ़ता से नामित असेंबली उत्पन्न नहीं कर सकते हैं जो गैर-दृढ़ता से नामित असेंबली का संदर्भ देता है।
लेख "The Secrets of Strong Naming"। इन अवधारणाओं को और विस्तार से समझाते हुए एक उत्कृष्ट काम है। चित्रों के साथ।
स्रोत
2008-09-25 02:42:34
क्या इसका मतलब यह है कि जब आप एक पीएफएक्स के साथ एक असेंबली पर हस्ताक्षर करते हैं, तो यह वास्तव में इसका उपयोग करता है। जब भी यह संकलित होता है तो फ्लाई पर एसएनके। – Patrick
@ पैट्रिक संख्या, वह [प्रमाणीकरण हस्ताक्षर] है (http://technet.microsoft.com/en-us/library/cc750035.aspx) जो, यह भी साबित करता है कि फ़ाइल हस्ताक्षर और चेक के बीच संशोधित नहीं की गई थी, मजबूत नाम आवश्यकताओं को पूरा नहीं करता है। समस्या यह है कि प्रमाणीकरण को असेंबली के विश्वास की एक श्रृंखला की आवश्यकता नहीं होती है, जिसके लिए मजबूत नामकरण की आवश्यकता होती है ताकि आप Authenticode एक असेंबली पर हस्ताक्षर कर सकें जो गैर मजबूत नामित/हस्ताक्षरित असेंबली पर निर्भर करता है। –
आप बस स्नैप को बंद कर सकते हैं और इसे किसी अन्य के साथ बदल सकते हैं .. मुझे एक वास्तविक परिदृश्य नहीं पता है जहां यह उपयोगी है .. यह मूल रूप से हमारे प्रमुख जोड़े हैं जिन्हें आप उस पर विश्वास नहीं बना सकते – Ibrahim