Мне была предоставлена закодированная зашифрованная строка Base64, которая была зашифрована на Java с помощью Bouncy Castle. Пример Java фрагмент кода ниже:C# RSA Расшифровка с использованием Bouncy Castle
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.ENCRYPT_MODE, key.getPublic());
byte[] encryptedText = cipher.doFinal("xxxxx|xxxxx".getBytes("UTF-8"));
String encodedText = new BASE64Encoder().encode(encryptedText);
мне нужно расшифровать получившуюся строку, используя Надувной замок, но в C# я был дан фрагмент кода о том, как это сделать в Java, но я не могу преобразовать это для C# (причина в том, что мы строим сайт .net и собираемся быть iFrame на сайте Java. Сайт Java собирается передавать в зашифрованном виде RSA на сайт .NET). Пример Java-код для расшифровки ниже:
Cipher cipherDec = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipherDec.init(Cipher.DECRYPT_MODE, key.getPrivate());
byte[] decodedText = new BASE64Decoder().decodeBuffer(encodedText);
byte[] decryptedText = cipherDec.doFinal(decodedText);
String finalValue = new String(decryptedText, "UTF-8");
Я скачал примеры из http://www.bouncycastle.org/csharp/, но не похоже, чтобы быть примером ввода строковое значение, чтобы получить в зашифрованном виде, а затем он собирается хотя шифрования/дешифрования процесс ,
Я заданные значения для модуля, общественного показателя, частный expontent, премьер P, премьер д, простой показатель р, главный показатель д коэффициент и элт ,
Я видел, что я могу использовать следующее:
IAsymmetricBlockCipher signer = new Pkcs1Encoding(new RsaEngine());
signer.Init(true, pubParameters);
Но signer
объект не кажется, имеют одни и те же методы, что и примеры Java выше.
только метод, который я могу использовать это
ProcessBlock(byte[] inbuf, int inOff, int inLen);
Но я не могу понять, как использовать это в моем контексте.
Любая помощь здесь была бы очень признательна.
Спасибо Спенсер, используя System.Convert.FromBase64String (я пробовал прошлой ночью, и это не сработало, поэтому я думаю, что я делал что-то не так). Это в сочетании с использованием Encoding.UTF8.GetString (encdata); чтобы получить окончательный результат. – mp3duck