Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

симметричное шифрование, не работает в связке с memoryStream

33K
18 декабря 2007 года
aureliano82
9 / / 12.12.2007
CryptoStream почему-то перестал шифровать.. ума не приложу, что не так, подскажите, плз)

Код:
byte[] bin = new byte[len];

...

MemoryStream msEncrypt = new MemoryStream(bin);
SymmetricAlgorithm rijn = SymmetricAlgorithm.Create();
rijn.Key = new byte[32] { ... };
rijn.IV = new byte[16] { ... };
CryptoStream encStream = new CryptoStream(msEncrypt, rijn.CreateEncryptor(rijn.Key, rijn.IV), CryptoStreamMode.Write);
encStream.Write(bin, 0, len);
//encStream.FlushFinalBlock();
encrypted = new byte[len];
msEncrypt.Position = 0;
msEncrypt.Read(encrypted, 0, len);
//encStream.Close();
msEncrypt.Close();


во-первых, на выходе получаем, что массив encrypted совпадает с исходным bin
а во-вторых, при попытке закрыть поток encStream (или сделать FlushFinalBlock) ругается на размер потока ("Memory stream is not expandable." либо "Length of the data to decrypt is invalid." - через раз) :confused:
попробовал сделать через файловый поток - все ок. но при этом создается файл, а мне этого не нужно.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог