Re: AES C# <-> C++
От: Testus  
Дата: 22.08.10 21:32
Оценка:
Здравствуйте, Testus, Вы писали:

T>Шифрую AES-ом данные в C#:

T>
T>            Rijndael _aes = Rijndael.Create();
T>            byte[] _key = new byte[16];
T>            byte[] _iv = new byte[16];
T>            data[] data = new byte[8];
T>            byte[] encdata = null;

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

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

T>            encdata = ms.ToArray();
T>

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

T>Реализацию для C++ взял из OpenSSL

T>Пытаюсь расшифровать следующим способом:
T>
T>    byte _key[16];
T>    byte _iv[16];
T>    byte encdata[16];
T>    byte data[8];

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

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

T>Как расшифровать ума не приложу?

T>Есть идеи?

Тьфу ты блин!
AES_set_encrypt_key — глупая опечатка нужно AES_set_decrypt_key... из счастье есть
Glück auf
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.