dll強簽名的由來和作用


C# dll強簽名介紹

前基本沒有這個概念,直到有一天我們的dll被反編譯了,導致我們的代碼基本上被看到了,才想起來要保護dll的安全性,因為C#語言的在編譯過程中會產生中間語言導致dll很容易被反編譯。暫且先不說如何加密,為了保證dll不被別人隨便使用,就首先得對其進行強簽名。

為什么使用強名稱簽名:

通過簽發具有強名稱的程序集,您可以確保名稱的全局唯一性。強名稱還特別滿足以下要求:
強名稱依賴於唯一的密鑰對來確保名稱的唯一性。任何人都不會生成與您生成的相同的程序集名稱,因為用一個私鑰生成的程序集的名稱與用其他私鑰生成的程序集的名稱不相同。
強名稱保護程序集的版本沿襲。強名稱可以確保沒有人能夠生成您的程序集的后續版本。用戶可以確信,他們所加載的程序集的版本出自創建該版本(應用程序是用該版本生成的)的同一個發行者。
強名稱提供可靠的完整性檢查。通過 .NET 框架安全檢查后,即可確信程序集的內容在生成后未被更改過。但請注意,強名稱中或強名稱本身並不暗含某一級別的信任,例如由數字簽名和支持證書提供的信任。
在引用具有強名稱的程序集時,您應該能夠從中受益,例如版本控制和命名保護。如果此具有強名稱的程序集以后引用了具有簡單名稱的程序集(后者沒有這些好 處),則您將失去使用具有強名稱的程序集所帶來的好處,並依舊會產生 DLL 沖突。因此,具有強名稱的程序集只能引用其他具有強名稱的程序集。

這里有個介紹的也比較詳細:http://blog.csdn.net/donjuan/article/details/3859136 

總結:就是給dll加一個唯一的標識,引用dll就是引用了一個公鑰,然后clr進行身份驗證后如果與之前保存在AssemblyInfo中的散列信息相同則通過。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM