Obtención de la clase SlowAES y RijndaelManaged en .NET para jugar juntos

Estoy intentando configurar el cifrado / descifrado AES utilizando la biblioteca javascriptSlowAES y elRijndaelManaged clase en .NET.

Elegí este método después de leeresta publicación, donde Cheeso ha logrado obtener estos dos métodos de encriptación para jugar juntos

"En mis pruebas de las COME lentas envueltas en COM, usé el modo CBC, y el cifrado era completamente compatible con la clase RijndaelManaged en .NET" - Cheeso

Tomé el código javascript del componente de secuencias de comandos de Windows de Cheeso, las últimas bibliotecas de versiones lentas, y usé el siguiente script de javascript para probar:

var key = "12345678901234567890123456789012";
var message = "watson?";
var decrypted;

slowAES.aes.keySize.SIZE_256;
slowAES.modeOfOperation.CBC;
put_PassPhrase(key);
var result = EncryptString(message);
decrypted = DecryptCommaDelimitedStringToString(result)
document.write("Key:" + key + "<br />original:" + message + "<br />Cypher:" + result + "<br />Decrypted:" + decrypted + "<br />IV(): " + get_IV());

Estoy obteniendo el siguiente resultado:

Key:12345678901234567890123456789012
original:watson?
Cypher:245,159,1,1,168,1,1,143,1,1,146,1,1,239,117,1
Decrypted:watson? 
IV(): 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

He modificado el siguiente ejemplo encontradoen MSDN para tratar de emparejar el cifrado en C #:

public static void Main()
        {
            try
            {
                string original = "watson?";
                byte[] IV = new byte[16];   // match slowaes IV
                byte[] key = new System.Text.ASCIIEncoding().GetBytes("12345678901234567890123456789012");// match slowaes KEY

                RijndaelManaged myRijndael = new RijndaelManaged();
                myRijndael.BlockSize = 128;
                myRijndael.KeySize = 256;
                myRijndael.Mode = CipherMode.CBC;

                // Encrypt the string to an array of bytes.
                byte[] encrypted = encryptStringToBytes_AES(original, key, IV);

                // Decrypt the bytes to a string.
                string roundtrip = decryptStringFromBytes_AES(encrypted, key, IV);

                //Display the original data and the decrypted data.
                Console.WriteLine("Original:   {0}", original);
                Console.WriteLine("Round Trip: {0}", roundtrip);

            }
            catch (Exception e)
            {
                Console.WriteLine("Error: {0}", e.Message);
            }
        }

Reloj de la matriz de bytes:

-  encrypted {byte[16]} byte[]
  [0] 139 byte
  [1] 104 byte
  [2] 166 byte
  [3] 35 byte
  [4] 8 byte
  [5] 42 byte
  [6] 216 byte
  [7] 160 byte
  [8] 235 byte
  [9] 153 byte
  [10] 23 byte
  [11] 143 byte
  [12] 105 byte
  [13] 3 byte
  [14] 24 byte
  [15] 255 byte

He probado todas las opciones de relleno con la clase .NET administrada, sin embargo no puedo hacer coincidir las salidas cifradas. ¿Alguien puede ayudarme?

Gracias,

Mover

Respuestas a la pregunta(1)

Su respuesta a la pregunta