Почему TripleDes использует ровно 16 байтов из Rfc2898DeriveBytes?

Rfc2898DeriveBytes k1 = new Rfc2898DeriveBytes(pwd1, salt1, myIterations);

Rfc2898DeriveBytes k2 = new Rfc2898DeriveBytes(pwd1, salt1);

// Encrypt the data.
TripleDES encAlg = TripleDES.Create();
encAlg.Key = k1.GetBytes(16);

Мой вопрос: почему .GetByte 16? Также это то же самое для RijndaelManaged? требуется 16 байт?


person William Lopez    schedule 22.08.2014    source источник
comment
Похоже, что 16 — это просто количество байтов псевдослучайного ключа, которое вы хотите, чтобы метод возвращал. msdn. microsoft.com/en-us/library/   -  person SubSevn    schedule 22.08.2014


Ответы (1)


Это из-за размера ключа, необходимого для алгоритма:

Конечно, ничто не мешает вам сгенерировать больше байтов из дериватора ключа, но эти алгоритмы либо обрежут ненужные данные, либо просто перестанут работать, если размер недопустим — http://msdn.microsoft.com.

person Eugene Podskal    schedule 22.08.2014