TripleDES IV для C #? - PullRequest
       13

TripleDES IV для C #?

4 голосов
/ 16 июня 2011

Поэтому, когда я говорю что-то вроде:

TripleDES tripledes = TripleDES.Create();
Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(password, plain);
tripledes.Key = pdb.GetBytes(16);
tripledes.IV = pdb.GetBytes(16);

Я получаю ошибку. Раньше ошибка была на ключе, но она была исправлена ​​(думаю - если вы не заметили что-то не так) Однако ошибка возникает, когда я устанавливаю IV:

tripledes.IV = pdb.GetBytes(16);

Это говорит о том, что это недопустимый вектор инициализации.

Как мне это исправить?

1 Ответ

8 голосов
/ 16 июня 2011

Размер блока для TripleDES составляет 64 бита. Вы пытаетесь установить 128 бит.

Это должно работать:

tripledes.IV = pdb.GetBytes(8);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...