Se me ha proporcionado una cadena cifrada Base64 codificada, que se encriptó en Java utilizando Bouncy Castle. Ejemplo de Java siguiente fragmento:Descifrado de C# RSA usando 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);
necesito para descifrar la cadena resultante usando castillo hinchable, pero en C# me ha dado un fragmento de código en la forma de hacer esto en Java, pero no puede convertir esto para C# (razones por las que estamos construyendo un sitio .net, y va a ser un iFrame dentro de un sitio Java. El sitio Java pasará la cadena RSA Encrypted al sitio .NET). Ejemplo de Java de código para descifrar a continuación:
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");
he descargado los ejemplos de http://www.bouncycastle.org/csharp/ pero no parece ser un ejemplo de la introducción de un valor de cadena para ser encriptada, y luego que pase por el cifrar/descifrar proceso .
me ha dado valores para módulo, exponente público, expontent privada, primo p, primo q, exponente primo p, exponente q coeficiente de y CRT .
he visto que puedo usar lo siguiente:
IAsymmetricBlockCipher signer = new Pkcs1Encoding(new RsaEngine());
signer.Init(true, pubParameters);
pero no parece el objeto signer
tener los mismos métodos que los ejemplos anteriores de Java.
único método que puede utilizar es
ProcessBlock(byte[] inbuf, int inOff, int inLen);
, pero no puedo ver cómo utilizar esto en mi contexto.
Cualquier ayuda aquí sería muy apreciada.
Gracias Spencer, Utilizando System.Convert.FromBase64String funcionó (Lo intenté anoche, y no funcionó, así que supongo que estaba haciendo algo mal). Eso combinado con el uso de Encoding.UTF8.GetString (encdata); para obtener el resultado final. – mp3duck