C# RSA Déchiffrement à l'aide de Château Gonflable
J'ai reçu un Encodées en Base64 chaîne cryptée, qui a été codée en Java à l'aide de Château Gonflable. Exemple Java extrait de code ci-dessous:
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);
J'ai besoin de décrypter la chaîne résultante à l'aide de Château Gonflable, mais en C#
J'ai reçu un extrait de code sur la façon de le faire en Java, mais je ne peux pas convertir ce pour C# (raisons est que nous sommes la construction d'une .net site, et va être un iFrame dans une Java site. La Java site va passer dans le RSA chaîne Cryptée à l' .NET site). Exemple de code Java pour décrypter ci-dessous:
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");
J'ai téléchargé les exemples de http://www.bouncycastle.org/csharp/ mais il ne semble pas être un exemple de la saisie d'une chaîne de valeur pour obtenir crypté, et puis il va bien le crypter/décrypter des processus.
J'ai été donné de valeurs pour module, public exposant, privé expontent, premier P, q premier, premier exposant de p, premier exposant de q et crt coefficient.
J'ai vu que je peut utiliser les éléments suivants:
IAsymmetricBlockCipher signer = new Pkcs1Encoding(new RsaEngine());
signer.Init(true, pubParameters);
Mais la signer
objet ne semble pas avoir les mêmes méthodes que le Java exemples ci-dessus.
Seule méthode que j'ai peut utiliser est
ProcessBlock(byte[] inbuf, int inOff, int inLen);
Mais je ne vois pas comment l'utiliser dans mon contexte.
Toute aide serait appréciée.
Vous devez vous connecter pour publier un commentaire.
Pour Aider les autres, la version finale du code de convertir est comme suit:
mod, pubExp etc etc sont tous BigInteger valeurs:
Suivantes
using
directives sont nécessaires:Qui peut être obtenu à partir de la bouncycastle site. http://www.bouncycastle.org/csharp/
Avez-vous essayé la conversion de la base 64 chaîne en un tableau d'octets, puis en utilisant le processus de bloc de la méthode? Il peut y avoir plus que ça, mais c'est certainement la première étape, je prendrais.
Voici un exemple de comment faire cela: http://msdn.microsoft.com/en-us/library/system.convert.frombase64string.aspx
Je ne suis pas sûr de comprendre pourquoi vous devez utiliser Bouncycastle. Le petit extrait de code montre et de cryptage/décryptage RSA exemple en utilisant seulement .NET catégories: