Мне нужно преобразовать следующий код JAVA в C #.Код используется для генерации токена авторизации с использованием ключа API и открытого ключа.Мне не удалось найти альтернативу ac # предоставленному коду.
Я исследовал использование BouncyCastle для альтернатив X509EncodedKeySpec и KeyFactory.
Вот решение, написанное на JAVA, мне нужносделать то же самое в c #
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
Cipher cipher = Cipher.getInstance("RSA");
byte[] encodedPublicKey = Base64.decodeBase64(publicKey);
System.out.println("Bytes = " + encodedPublicKey);
X509EncodedKeySpec publicKeySpec = new
X509EncodedKeySpec(encodedPublicKey);
PublicKey publicKey = keyFactory.generatePublic(publicKeySpec);
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] encryptedApiKey =
Base64.encodeBase64(cipher.doFinal(apiKey.getBytes("UTF-8")));
return new String(encryptedApiKey, "UTF-8");
Вот мой c #, пока отсутствующим компонентом является X509EncodedKeySpec.
var RSA = new RSACryptoServiceProvider(4096);
var RSAPublicKey = RSA.ExportParameters(false);
RSA = new RSACryptoServiceProvider();
RSA.ImportParameters(RSAPublicKey);
var APIKeyRSACipher =
RSA.Encrypt(Convert.FromBase64String(APIKey),false);
var DigestedRSACipher = Convert.ToBase64String(APIKeyRSACipher);
Console.WriteLine(DigestedRSACipher);
Console.ReadKey();
Любая помощь / совет будет оценен, так как я пыталсячтобы понять это в течение достаточно долгого времени:)