Verschlüsseln von Daten mit C# AesCryptoServiceProvider, verschlüsselt mit dem BouncyCastle AesFastEngine

Brauche ich zum entschlüsseln der Daten mit Standard-C# AesCryptoServiceProvider, die verschlüsselt wurde, mit Hüpfburg AesFastEngine auf die Java-Seite. (Zum entschlüsseln der Daten unter Verwendung der c# - Implementierung von Bounca Schloss ist kein problem)

Gibt es eine Möglichkeit, dies zu tun?

Ich nicht finden, die IV verwendet, in der Hüpfburg Umsetzung... gibt es eine?

Jede Hilfe wäre wirklich fein!
Markus

EDIT:

Wird der folgende code verwendet zur Initialisierung die AesFastEngine:

BlockCipher coder = new AESFastEngine();
CFBBlockCipher cfbCipher = new CFBBlockCipher(coder, 8);
StreamCipher streamCipher = new StreamBlockCipher(cfbCipher);
streamCipher.Init(true, keyParameter);
streamCipher.ProcessBytes(data, 0, data.Length, encodedMessageBytes, 0);

EDIT:

Hallo Grec, vielen Dank für deine Antwort, aber es funktioniert immer noch nicht...
Ich habe eine Beispiel-Lösung zum download hier.

Wenn Sie auf die beiden Schaltflächen erhalten Sie bereits einen anderen verschlüsselten array...???
Die Entschlüsselung des Array erzeugt mit Hüpfburg führt zu einer exception, die sagen, dass die verschlüsselten Daten hat eine ungültige Länge...

Hier ist der Code, den ich schrieb für die Entschlüsselung:

AesManagedAlg = new AesManaged();
AesManagedAlg.Mode = CipherMode.CBC;
AesManagedAlg.FeedbackSize = 8;
AesManagedAlg.Key = key;
//Use Test
AesManagedAlg.IV = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; 

//Create a decrytor to perform the stream transform.
ICryptoTransform decryptor = AesManagedAlg.CreateDecryptor(AesManagedAlg.Key, AesManagedAlg.IV);

//Create the streams used for decryption.
msDecrypt = new MemoryStream(cipherText);
csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read);

//Read the decrypted bytes from the decrypting stream
var decryptedData = new List<byte>();
var buffer = new byte[1];
while (true) {
    var readedBytes = csDecrypt.Read(buffer, 0, buffer.Length);
    if(readedBytes == 0) break;
    decryptedData.Add(buffer[0]);
}
ret = decryptedData.ToArray();

Edit:

Immer in der Nähe! RijndaelManaged-managed funktioniert, aber es gibt mir ein byte der verschlüsselten Daten. Alle anderen bytes sind die gleichen... ich habe versucht, eine Menge, aber ich weiß nicht, wie man das Letzte byte mit Hüpfburg... Ohne das Letzte byte ist es nicht möglich, decrypte die Daten mit RijndaelManaged...

  • Welcher Modus der AES-hast du benutzt? Nur zu sagen, Sie verwendet AesFastEngine ist nicht genug Informationen.
  • Der folgende code verwendet zur Initialisierung die AesFastEngine: IBlockCipher coder = new AesFastEngine(); CfbBlockCipher cfbCipher = new CfbBlockCipher(coder, 8); IStreamCipher streamCipher = new StreamBlockCipher(cfbCipher); streamCipher.Init(true, keyParameter); streamCipher.ProcessBytes(Daten, 0, Daten.Länge, encodedMessageBytes, 0); Ist das genug information?
  • Bitte, kopieren und einfügen von code. Nie geben Sie es.
InformationsquelleAutor Markus | 2010-06-29
Schreibe einen Kommentar