AES C# <-> C++
От: Testus  
Дата: 22.08.10 20:56
Оценка:
Шифрую AES-ом данные в C#:
            Rijndael _aes = Rijndael.Create();
            byte[] _key = new byte[16];
            byte[] _iv = new byte[16];
            data[] data = new byte[8];
            byte[] encdata = null;

            MemoryStream ms = new MemoryStream();
            CryptoStream cs = new CryptoStream(ms, _aes.CreateEncryptor(_key, _iv), CryptoStreamMode.Write);

            cs.Write(data, 0, data.Length);
            cs.Close();

            encdata = ms.ToArray();

Результат: encdata — 16 байт (расшифровываются в C# обратно в 8 байт)

Реализацию для C++ взял из OpenSSL
Пытаюсь расшифровать следующим способом:
    byte _key[16];
    byte _iv[16];
    byte encdata[16];
    byte data[8];

    AES_KEY aeskey;
    AES_set_encrypt_key(_key, 128, &aeskey);
    AES_cbc_encrypt(encdata, data, 8, &aeskey, _iv, AES_DECRYPT);

Но вот загвоздка расшифровывает не правильно, по коду на сколько я понял ожидается длинна encdata и data одинаковая, а в C# у меня из 8 байт получилось 16 байт зашифрованных.

Как расшифровать ума не приложу?
Есть идеи?
Glück auf
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.