【问题标题】:When strong naming an assembly: Which key to pick keypair or public key?强命名程序集时:选择密钥对或公钥的哪个密钥?
【发布时间】:2011-08-04 15:26:28
【问题描述】:

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

sn -k keypair.snk

然后像这样从中提取公钥:

sn -p keypair.snk public.snk

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

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

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

非常感谢,

【问题讨论】:

    标签: c# .net signing


    【解决方案1】:

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

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

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

    引用自documentation

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

    这是 MSDN 上的 another article 解释此过程。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2012-07-13
        • 2022-01-15
        • 2012-04-17
        • 1970-01-01
        • 2013-08-06
        • 2018-07-19
        • 1970-01-01
        相关资源
        最近更新 更多