对程序集进行强命名时:选择哪个密钥对或公钥

本文关键字:选择 密钥对 公钥 程序集 | 更新日期: 2023-09-27 18:04:26

当在。net中强类型键入程序集时,我可以像这样创建对(私有):

sn -k keypair.snk

并像这样从中提取公钥:

sn -p keypair.snk public.snk

但是一旦我在项目的属性中,在签名选项卡下选择签名密钥,

选择哪个键?密钥对还是公钥?

我的组织在什么情况下需要公钥?

许多谢谢,

对程序集进行强命名时:选择哪个密钥对或公钥

但是,一旦我在项目的属性中,在签名选项卡下选择签名密钥,我该选择哪个密钥?

您需要包含公钥和私钥的原始文件(使用-k选项生成的文件)。

我的组织在什么情况下需要公钥?

引用自文档:

此公钥可用于使用属性对程序集进行延迟签名程序集链接器(Al.exe)的/delaysign+和/keyfile选项。当程序集是延迟签名的,在编译时只设置公钥文件中预留了用于添加签名的时间和空间稍后当私钥已知时。

MSDN上的另一篇文章解释了这个过程。

您需要的是对对,因为对对包含私钥。

私钥用于生成程序集的加密散列。然后,当公共语言运行库加载您的程序集时,它使用公钥来验证程序集的内容,以确保它没有被篡改。