如何将strongname公钥(snk)转换为<rsakeyvalue>?</rsakeyvalue>

时间:2011-09-24 12:07:31

标签: c# .net cryptography strongname snk

我有一个文件testpublic.snk,它包含一个公钥。我用sn -p c:\ test.snk c:\ testpublic.snk创建了它。 现在,我如何将testpublic.snk转换为类似

的字符串
<RSAKeyValue><Modulus>z140GwiEJvuGOVqMQUxnojILR8rn2SFOViigoloku59H5eqzqca3Hdyl/jc+Acdb5ktzhBOOyGFElE0/Btlvw9cXVVW8zcT0MBOCaq25D1rSVYLGGM6nXzBrl1XsrBEadZbCgkcF5rw8GaYcYakijaltP1/hvxhbMOARM9VCQ50=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

只需重新使用Mono中的(MIT.X11许可)代码。安全StrongName类,可在github中找到,然后在其RSA属性上调用ToXmlString。类似的东西:

Console.WriteLine (new StrongName (data).RSA.ToXmlString (false));

数据是包含 snk 文件内容的byte []。如果您想要XML中的私钥,也可以使用 true (如果您的 snk 文件可用,它将会正常工作)。