2009-05-21 30 views
1

來自維基百科的引用:「公鑰標記,這是公鑰的64位散列,對應於用於簽署程序集的1的私鑰。說有一個強大的名字。「 [出處: http://en.wikipedia.org/wiki/.NET_assemblies]關於.NET程序集的公鑰標記的澄清

這是正確的嗎?我覺得這與下面的解釋不一致: 「對程序集簽名包括對程序集的重要部分進行散列,然後用私鑰對散列進行加密。帶符號的散列與公鑰一起存儲在程序集中「。

第一個引號是否正確。你能否簡單地說明簽字的過程。

編輯: 我的問題是,這是公鑰是散列還是哈希使用密鑰加密?

回答

3

MSDN總是你最好的(並且幾乎總是完全準確的)來源於這類事情。從頁面上Creating and Using Strong-Named Assemblies

強名稱由 組裝的身份 - 它的簡單的文本 名稱,版本號和區域性 信息(如果有的話) - 加上 公共密鑰和數字簽名。它使用相應的私鑰從彙編文件 生成它 。 (彙編文件包含 集清單,其中包含了所有 組成組件的文件的 名稱和哈希值。)

因此,維基百科似乎是模糊的權利,但沒有說全那裏的故事。

該MSDN頁面還鏈接到一些關於.NET程序集的強名稱簽名的文章。

0

公鑰標記是基於用於簽署程序集的密鑰的,因此如果您採用兩個程序集並使用相同的密鑰對它們簽名,則它們的公鑰標記將相同。

但是,它們的簽名(通過簽名過程添加到程序集中的數據)將不會相同,因爲它基於程序集內容以及密鑰。