dll強簽名的由來和做用

C# dll強簽名介紹

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

爲何使用強名稱簽名:

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

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

總結:就是給dll加一個惟一的標識,引用dll就是引用了一個公鑰,而後clr進行身份驗證後若是與以前保存在AssemblyInfo中的散列信息相同則經過。spa

相關文章
相關標籤/搜索