强大命名程序集时:选择密钥对或公钥的哪个键?

时间:2011-08-04 15:26:29

标签: c# .net signing

当Strong在.net中键入程序集时,我可以像这样创建密钥对(私有):

sn -k keypair.snk

从中提取公钥,如下:

sn -p keypair.snk public.snk

但是一旦我进入项目的属性,在Signing选项卡下选择Sign key,

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

在我的组织中哪些情况下我需要公钥?

非常感谢,

2 个答案:

答案 0 :(得分:2)

  

但是一旦我进入项目的属性,在Signing选项卡下选择Sign键,我选择哪个键?

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

  

在我的组织中哪些情况下我需要公钥?

来自documentation

的引用
  

此公钥可用于延迟使用标记对程序集进行签名   程序集链接器(Al.exe)的/ delaysign +和/ keyfile选项。什么时候   程序集是延迟签名的,只有公共密钥在编译时设置   文件中保留时间和空间以添加签名   稍后当私钥被知道时。

MSDN上的another article解释了这个过程。

答案 1 :(得分:1)

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

私钥用于生成程序集的加密哈希。然后,当Common Language Runtime加载程序集时,它使用公钥来验证程序集的内容,以确保它没有被篡改。

相关问题