C# 如何将strongname公钥(snk)转换为<;RSAKeyValue>;?

C# 如何将strongname公钥(snk)转换为<;RSAKeyValue>;?,c#,.net,cryptography,strongname,snk,C#,.net,Cryptography,Strongname,Snk,我有一个文件testpublic.snk,它持有一个公钥。我用sn-pc:\test.snk c:\testpublic.snk创建了它。 现在,我如何将testpublic.snk转换为类似 <RSAKeyValue><Modulus>z140GwiEJvuGOVqMQUxnojILR8rn2SFOViigoloku59H5eqzqca3Hdyl/jc+Acdb5ktzhBOOyGFElE0/Btlvw9cXVVW8zcT0MBOCaq25D1rSVYLGGM6nXzB

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

<RSAKeyValue><Modulus>z140GwiEJvuGOVqMQUxnojILR8rn2SFOViigoloku59H5eqzqca3Hdyl/jc+Acdb5ktzhBOOyGFElE0/Btlvw9cXVVW8zcT0MBOCaq25D1rSVYLGGM6nXzBrl1XsrBEadZbCgkcF5rw8GaYcYakijaltP1/hvxhbMOARM9VCQ50=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>
Z140GWiejvugovqmquxnojilr8rN2Sfoviigoloku59h5eqcqca3hdyl/jc+ACDB5TZHBooygfele0/BTLVW9CxVvw8ZCT0MBOCaq25d1rsvylggm6nxzbrl1xsrbeadzbcgkcf5rw8gaycyakialtp1/hvcbmoarm9vcq50=AQAB
感谢您的帮助。

只需重新使用github中提供的.Security类的(MIT.X11许可)代码,然后调用它的RSA属性。比如:

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

其中,data是一个字节[],包含snk文件的内容。如果您想在XML中使用私钥,也可以使用true

我不知道snk.exe,但我认为rsacyptoprovider有一些方法可以将(公共)密钥作为XML获取。