2015-05-22 50 views
0

幾個.dll可以有相同的公鑰(強名稱)嗎? 我在我的電腦上發現了61個版本的mscorlib.dll。 當我運行這個工具時,我發現他們中的一些人擁有相同的公鑰!? C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v3.5 \ Profile \ Client \ mscorlib.dll 和C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ mscorlib.dll似乎具有相同的公鑰(b77a5c561934e089)。無論如何這些密鑰是如何生成的?文件的y CRC校驗和是多少?幾個程序集可以擁有相同的公鑰嗎?

+0

「強名」與公鑰不一樣。您使用密鑰對來創建簽名,從而爲程序集提供「強名」。 –

回答

1

是的,他們可以。但公鑰並不是強名,它只是用於簽署程序集(或程序集)的加密密鑰的公共部分。一旦你這樣做,該大會有一個強大的名字。

+1

它不僅僅是公鑰加密的一部分,組件名稱語句中顯示的公鑰只是用於簽署程序集的實際公鑰的一部分(如果您使用['InternalsVisibleTo'](https:/ /msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute%28v=vs.110%29.aspx)你必須使用完整的公鑰,而不是減少版本) –

+0

對,一直有在'PublicKeyToken'(這個問題的簡稱)和'PulicKey'(完整版本)之間有點混淆。 – MatteoSp

相關問題