程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> .Net程序集強簽名詳解

.Net程序集強簽名詳解

編輯:關於.NET

強簽名:

1. 可以將強簽名的dll注冊到GAC,不同的應用程序可以共享同一dll。

2. 強簽名的庫,或者應用程序只能引用強簽名的dll,不能引用未強簽名的dll,但是未強簽名的dll可以引用強簽名的dll。

3. 強簽名無法保護源代碼,強簽名的dll是可以被反編譯的。

4. 強簽名的dll可以防止第三方惡意篡改。

 

強簽名的方法:

1. 有源代碼:

1.1 使用vs tool command:snk –k mykey.snk 生成簽名公鑰。

1.2 將公鑰加入項目中,並設置項目屬性,設置簽名公鑰

image

1.3 重新生成項目。

 

2. 沒有源代碼。

2.1 創建強簽名鍵:

sn.exe -k key.snk

2.2 反匯編dll為il

ILDASM.exe SomeLibrary.dll /OUTPUT=SomeLibrary.il

該指令會反匯編該dll並生成SomeLibrary.il,如果該dll含有嵌入的resource,

則會有SomeLibrary.res文件產生,並有相應的嵌入資源文件產生。

2.3 重新匯編為dll

ILASM.exe SomeLibrary.il /DLL /OUTPUT=SomeLibrary.dll /KEY=key.snk

如果有嵌入的資源文件,則需要加上 /RESOURCE=SomeLibrary.res

 

強簽名的dll與未簽名的在反編譯後的區別:

未簽名的:

image

 

強簽名的:

image

 

更多詳細信息參考 StringNaming

http://windowsdevcenter.com/pub/a/dotnet/2003/04/28/strongnaming.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved