Размер ключа 3DES имеет значение в C # .Net

Код ниже работает нормально в c # .NET

byte[] key = Encoding.ASCII.GetByte("012345678901234567890123"); //24characters        
byte[] plainText = Encoding.ASCII.GetBytes("lasaa"); 
TripleDES des = TripleDES.Create();
des.Key = key;
des.Mode = CipherMode.CBC;
ICryptoTransform ic = des.CreateEncryptor();
byte[] enc = ic.TransformFinalBlock(plainText, 0, plainText.Length);
MessageBox.Show(UTF8Encoding.UTF8.GetString(enc));

Мои вопросы по поводу выше ...

  1. Как я могу указать размер ключа? если я использую des.KeySize = 128 или 192 или 256 , это дает

Указанный ключ не является допустимым размером для этого алгоритма

  1. Если я изменю длину символа в ключе, добавив больше (например, 40 символов). Выдает ошибку

Указанный ключ не является допустимым размером для этого алгоритма

Я хочу знать, почему это происходит?

19
задан Liam 2 May 2014 в 13:35
поделиться