【发布时间】:2014-03-06 04:29:21
【问题描述】:
如何对 Java 生成的 RSA 私有(和公共)密钥进行编码,以便在 .NET 中对其进行解码,以便在 RSACryptoServiceProvider 中使用?
我试过这段代码:
var keyGen = KeyPairGenerator.GetInstance("RSA");
keyGen.Initialize(2048);
KeyPair keyPair = keyGen.GenerateKeyPair();
IPrivateKey privateKey = keyPair.Private;
byte[] nativePrivateKey = privateKey.GetEncoded();
var nativeToRsa = new RSACryptoServiceProvider();
nativeToRsa.ImportCspBlob(nativePrivateKey); // throws a CryptographicException
我正在使用 Xamarin.Android 编写 C#,但“本机”Java RSA 密钥生成器比单声道生成器快得多。所以我想使用 Java 的,但我仍然需要能够与 Windows 人员交换公钥和/或私钥,以便与RSACryptoServiceProvider 一起使用。
所以最终我可能想要/需要双向(JavaRSACryptoServiceProvider)。有没有人指点一下?
谢谢。
【问题讨论】:
标签: java android cryptography xamarin rsa