2011-09-24 84 views
3

我有一個文件testpublic.snk它擁有一個公鑰。我用sn -p c:\ test.snk c:\ testpublic.snk創建了它。 現在,我怎麼能轉換testpublic.snk爲一個字符串像如何將strongname公鑰(snk)轉換爲<RSAKeyValue>?

<RSAKeyValue><Modulus>z140GwiEJvuGOVqMQUxnojILR8rn2SFOViigoloku59H5eqzqca3Hdyl/jc+Acdb5ktzhBOOyGFElE0/Btlvw9cXVVW8zcT0MBOCaq25D1rSVYLGGM6nXzBrl1XsrBEadZbCgkcF5rw8GaYcYakijaltP1/hvxhbMOARM9VCQ50=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue> 

感謝您的幫助。

+0

我不知道snk.exe,但我認爲RsaCryptoProvider有一些方法可以將(public)作爲XML。 –

回答

2

只需重新使用來自Mono的安全StrongName類(MIT.X11許可),可在github上獲得,然後在其RSA屬性上調用ToXmlString。喜歡的東西:

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

數據是包含您SNK文件的內容一個byte []。你也可以使用true如果你想在你的XML私鑰(它會工作,如果它可以從你的snk文件)。