Ich habe eine Base64 Encoded verschlüsselte Zeichenfolge, die in Java mit Bouncy Castle verschlüsselt wurde gegeben. Beispiel Java-Snippet unten:C# RSA Entschlüsselung mit 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);
ich den resultierenden String mit Hüpfburg entschlüsseln muß, aber in C# ich einen Code-Schnipsel, wie angegeben wurde in Java, dies zu tun, aber ich kann das nicht konvertieren für C# (Gründe dafür ist, dass wir eine .net-Site erstellen, die innerhalb einer Java-Site ein iFrame sein wird. Die Java-Site wird die verschlüsselte RSA-Zeichenfolge an die .NET-Site übergeben). Beispiel Java-Code unten zu entschlüsseln:
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");
ich die Beispiele von http://www.bouncycastle.org/csharp/ heruntergeladen haben, aber es scheint nicht ein Beispiel für die Eingabe eines String-Wert zu bekommen verschlüsselt und dann wenn die encrypt gehen/Entschlüsselung Prozess .
Ich habe Werte für Modul, öffentlichen Exponenten, , prime P, Primzahl q, prime Exponenten p, prime Exponenten q und crt Koeffizient privaten expontent gegeben .
ich gesehen habe, dass ich die folgenden verwenden:
IAsymmetricBlockCipher signer = new Pkcs1Encoding(new RsaEngine());
signer.Init(true, pubParameters);
Aber das signer
Objekt scheint nicht über die gleichen Methoden wie die Java-Beispiele zu haben.
nur Methode, die ich verwenden kann, ist
ProcessBlock(byte[] inbuf, int inOff, int inLen);
Aber ich kann nicht sehen, wie dies in meinem Kontext zu verwenden.
Jede Hilfe hier würde am meisten geschätzt werden.
Dank Spencer, mit System.Convert.FromBase64String funktioniert (Ich versuchte letzte Nacht, und es hat nicht funktioniert, also ich denke, ich habe etwas falsch gemacht). Dies kombiniert mit der Verwendung von Encoding.UTF8.GetString (encdata); um das Endergebnis zu erhalten. – mp3duck