【问题标题】:Extracting private key from a strong name file?从强名称文件中提取私钥?
【发布时间】:2010-08-05 05:36:09
【问题描述】:

正如标题所述,有人知道如何从 snk 文件中提取私钥吗?我们想使用 StrongName 中的私钥进行加密。我读到:
http://msdn.microsoft.com/en-us/library/k5b5tt23(VS.80).aspx sn -o key.snk 将提取文件中存在的私钥/公钥,但我试过了,它只是一个长的 CSV 格式的字符串,没有区别私钥和公钥是什么。

【问题讨论】:

    标签: .net strongname


    【解决方案1】:

    在您链接的文档中,在 -o 标志旁边,它说:

    如果 infile 包含带有私钥的密钥对,也会提取私钥。

    您确定文件中有私钥吗?

    您可以运行sn -p key.snk 来获取公钥,并将其与sn -o key.snk 的输出进行比较 - 如果它们相同,则密钥文件只有一个公钥,否则,区别在于私钥.

    【讨论】:

    • 是的,刚刚创建它如下:sn -k key.snk。强名称文件总是有一个公钥/私钥组合,否则它不能用于签署程序集。
    • @user127954 - 然后只提取公钥并进行比较。查看更新的答案。
    • 虽然它可能会很痛苦,因为 -o 选项返回一个字节数组,而 -p 返回一个乱码字符串:)。好吧,我想并不难,但我必须创建一个程序来读取它并将其转换为字节数组。我很惊讶没有记录的方式来返回私钥。
    • @user127954 - 可能是因为它应该是private。您应该记住创建密钥文件时使用的内容...
    • 是的,我完全理解,但公钥/私钥对还有其他格式。例如 pfx 您可以轻松提取私钥。说您无法提取私钥,因为它的私钥实际上没有意义。如果有人拥有您的 snk 文件,所有希望都将落空,他们可以轻松地签署自己的代码并替换您的程序集之一,您的程序将永远不会知道它的流氓代码。哎呀,也许我最终会散列 snk 文件并将其用作密钥并收工。
    猜你喜欢
    • 2021-03-14
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    • 2011-11-13
    相关资源
    最近更新 更多