Я новичок в проверке и сертификатах и т. Д. Я столкнулся с проблемой, что мне нужно подписать сообщение на C #, а затем проверить подпись на java, проблема, с которой я столкнулся, что я не могу загрузить открытый ключ на java на (PublicKey) с использованием строки Base64, созданной на C #, я использовал следующий код для генерации закрытого и открытого ключей на стороне C #
CspParameters cspParams = new CspParameters { ProviderType = 1 };
cspParams.KeyContainerName = "MyKeyContainer";
RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(1024);
string publicKey = Convert.ToBase64String(rsaProvider.ExportCspBlob(false));
string privateKey = Convert.ToBase64String(rsaProvider.ExportCspBlob(true));
System.Diagnostics.Debug.WriteLine("pub:" + publicKey);
System.Diagnostics.Debug.WriteLine("pri:" + privateKey);
Console.WriteLine("Key added to container: \n {0}", rsaProvider.ToXmlString(true));
затем я использовал следующий код для создания открытого ключа на стороне Java:
X509EncodedKeySpec specc = new X509EncodedKeySpec(org.apache.commons.codec.binary.Base64.decodeBase64("BgIAAACkAABSU0ExAAQAAA......"));
KeyFactory xx = KeyFactory .getInstance("RSA");
PublicKey ssx= xx.generatePublic(specc);
обратите внимание, что я скопировал строку открытого ключа base64 из консоли C #. Когда я пытаюсь запустить код на стороне Java, я получаю следующее исключение:
java.security.spec.InvalidKeySpecException: Inappropriate key specification: invalid key format
at sun.security.provider.DSAKeyFactory.engineGeneratePublic(Unknown Source)
at java.security.KeyFactory.generatePublic(Unknown Source)
Мне нужно найти способ сгенерировать закрытый и открытый ключ на С # (и сгенерировать файл .cer для открытого ключа), чтобы загрузить его на стороне Java, или найти способ загрузить строку открытого ключа base64 в объект (Publickey) на стороне Java. пожалуйста помоги !
KeyFactory .getInstance("RSA");
и исключение не соответствуют, потому что используется DSAKeyFactory вместо RSAKeyFactory. Убедитесь, что вы выполняете правильный код - person pedrofb   schedule 12.10.2017