乙個經過強命名的程式集是無法被篡改的。比如微軟的system.dll這些程式集都是經過強命名的,我們只能夠引用它,無法修改它。
如果平時不考慮版權問題我們可能很少會用到這個東西。我用乙個簡單的demo演示下強命名的作用.
1、新建一解決方案:vesiontest
2、新建乙個控制台應用程式專案:vesiontest
3、新建乙個類庫專案:information
vesiontest引用information類庫
最後程式發布後我們可以在資料夾裡找到這幾個檔案:information.dll,vesiontest.exe
我現在對information這個專案進行強命名,強命名的方法其實很簡單,就是生成金鑰對來進行數字簽名。操作非常簡答,如果要具體的可以參考這位仁兄寫的
如果我不進行強命名會有什麼後果呢?如果有人想篡改我的information程式集,如果我不對information這個專案進行強命名,那麼別人就可以寫乙個命名和我一樣的information的專案,最後發布乙個information.dll出來,然後替換我原來的版本,最後vesiontest引用到他寫的版本去了,這。。。這不就亂套了嗎。
我試過了,我自己新建另外乙個information的類庫,去替換經過強命名的dll,在執行exe檔案時會有相關的錯誤提示,如果我把強命名去掉,篡改後的dll是可以被呼叫的。
版權保護在某些應用場合還是非常重要的,不可忽視。
CLR 關於強命名程式集
如何建立強命名程式集 strong name assembly 建立乙個強命名程式集首先需要獲得乙個用強命名實用工具 strong name utility,即sn.exe,net sdk自帶 產生的金鑰。下面簡要介紹一下sn.exe的一些用法。要產生乙個公鑰 私鑰對 a sn k mycompan...
CLR 關於強命名程式集
如何建立強命名程式集 strong name assembly 建立乙個強命名程式集首先需要獲得乙個用強命名實用工具 strong name utility,即sn.exe,net sdk自帶 產生的金鑰。下面簡要介紹一下sn.exe的一些用法。要產生乙個公鑰 私鑰對 a sn k mycompan...
CLR 共享程式集和強命名程式集
2017年08月12日 23 36 52 生活常識 閱讀數 187 clr支援兩種型別的程式集 弱命名程式集 weakly named assembly 和強命名程式集 strongly named assembly 二者的區別 強命名程式集使用發布者的公鑰 私鑰進行了簽名。這一堆金鑰允許對程式集進...