Ключ 3DES имеет длину 128 или 192 бита.Обратите внимание, что внутренне , алгоритм будет использовать только 112 (соответственно 168) битов из этих 128 (соответственно 192) битов;однако сам ключ, закодированный в байтах, сохраненный и обмененный, должен иметь длину 16 или 24 байта.Попытка установить ключ, который не имеет ни одной из этих двух длин, вызывает ошибку, которую вы наблюдаете, когда пытаетесь использовать 40-байтовый ключ.
Не следует пытаться установить «размер ключа»:вы уже решили, что, когда вы установите ключ.Когда вы устанавливаете свойство TripleDES.Key
, класс TripleDES
видит, что вы даете ему 24-байтовый ключ, и таким образом присваивает себе свойство KeySize
значение 192.
(Вывод шифрования 3DESявляется бинарным, а не кодировкой строки UTF-8. Скорее всего, ваш последний UTF8Encoding.UTF8.GetString(enc)
будет протестовать.)