Вы ошиблись здесь- var key = Encoding.UTF8.GetBytes("mysmallkey");
См. Документацию здесь. Класс Aes
и Документация AES
Я предлагаю вам, используя LegalKeySizes property
в классе AES, вы можете проверить действительный размер вашего ключа. Допустимые размеры ключей определяются конкретной реализацией симметричного алгоритма и перечислены в свойстве LegalKeySizes.
public virtual KeySizes[] LegalKeySizes { get; }
Вы получите следующий вывод
var key = Encoding.UTF8.GetBytes("mysmallkey");
//myAes.Key = Key; //ERROR
KeySizes[] ks = myAes.LegalKeySizes;
foreach (KeySizes item in ks)
{
Console.WriteLine("Legal min key size = " + item.MinSize);
Console.WriteLine("Legal max key size = " + item.MaxSize);
//Output
// Legal min key size = 128
// Legal max key size = 256
}
если вы используете 128 bit then Length of secret key should be 16 for 128 bits key size
Попробуйте это
var key = Encoding.UTF8.GetBytes("mysmallkey123456");
Для 192-битного - длина секретного ключа должна быть 24 для 192-битного ключа
Размер образца ключа будет таким:
mysmallkey12345512987651
для 256 бит - длина секретного ключа должна быть 32 для ключа 256 бит
размер образца ключа
mysmallkey1234551298765134567890