日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[ZZ]强签名的由来和作用

發布時間:2024/1/17 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [ZZ]强签名的由来和作用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在網上,看到很多初學.NET的網友經常問,強簽名是什么,它的作用是什么?一句話,強簽名就是唯一標識一個Assembly文件的名稱。它由Assembly的文件名、版本號、區域信息、公鑰信息和處理器架構信息組成,這樣做是為了避免以前Windows里面的DLL HELL問題。

在強名以前,如果一個DLL升級覆蓋了老版本的DLL,有可能會導致系統里面一些依賴老版本的DLL程序出現兼容型的問題。這是因為新版本里面可能將老版本DLL的一些函數的實現方法改變—為了修復一些Bug,因此強簽名就將程序的版本信息作為唯一標識Assembly的一部分。

而.NET又因為歷史原因,在開發的時候由于PC還沒有64位的處理器可以使用,因此雖然.NET程序編譯成MSIL中間代碼以后,CLR可以根據所運行的機器的處理器架構生成對應的代碼。但是還是有一些Assembly模塊是依賴于指定平臺的,例如CustomMarshalers.dll,這個DLL調用了一些unsafe代碼,里面有一些指針操作,因此這個dll是依賴于指定平臺的。因此在2.0的.NET以后,強簽名就將程序所依賴的處理器信息也作為其一部分。

另外由于很多公司都需要開發國際化軟件產品,一般希望只保留一份代碼,然后將代碼里面用到的字符串放到其他Assembly里面?—?這個Assembly叫做資源Assembly。在代碼Assembly使用字符串的時候,只要指定字符串在資源Assembly對應的標識符,在做本地化的時候,軟件發布廠商只需要為需要支持的語言添加對應的資源Assembly就可以了。比如mscorlib.dll里面會扔出很多的異常,為了能為不同國家的.NET用戶顯示本地化的異常消息,mscorlib.dll將所有異常消息都提取到資源Assembly里面,因此你會看到系統里面安裝了mscorlib.en-us.dll,mscorlib.zh-cn.dll等等。使用.NET的ResourceManager類可以根據字符串標識符將資源Assembly里面對應的字符串和其他資源(有些圖片也需要本地化,例如改變圖片上的文字)提取出來,因此強簽名就將程序支持的區域信息作為它的一部分。

組件發布了以后,如何想其他人證明組件就是你發布的?例如在下圖的例子中,張三和黑客的程序都發布給王二,兩個程序都聲稱自己是張三提供的,王二如何區別哪個才是真的張三呢?

?

?

因此我們有了數字簽名這個解決方案,在下圖的例子中:

?

  • 張三先將自己的身份和公鑰注冊在權威機構里面。
  • 張三發送代碼給用戶。
  • 用戶去權威機構去查詢張三的身份是否和他聲明的相符。
  • 黑客發送代碼給用戶。
  • 用戶去權威機構查處代碼聲明的身份和它實際的身份不符。因此就可以采取保護措施。
  • ?

    因此公鑰作為強簽名的一部分就不是很奇怪了。

    轉自:http://blog.csdn.net/Donjuan/archive/2009/02/02/3859136.aspx

    轉載于:https://www.cnblogs.com/wk23415/archive/2011/04/06/2006436.html

    總結

    以上是生活随笔為你收集整理的[ZZ]强签名的由来和作用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。