Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NETCore3.0';指定的密钥不是此算法的有效大小。';_C#_.net_.net Core 3.0 - Fatal编程技术网

C# .NETCore3.0';指定的密钥不是此算法的有效大小。';

C# .NETCore3.0';指定的密钥不是此算法的有效大小。';,c#,.net,.net-core-3.0,C#,.net,.net Core 3.0,使用.Net Core 3.0我想加密一些文本,使用任意密码长度作为加密密钥: using (Aes myAes = Aes.Create()) { var key = Encoding.UTF8.GetBytes("mysmallkey"); myAes.Key = key; //ERROR } 我得到一个错误: System.Security.Cryptography.CryptographicException: 'Specified key is not a valid s

使用.Net Core 3.0我想加密一些文本,使用任意密码长度作为加密密钥:

using (Aes myAes = Aes.Create())
{
   var key = Encoding.UTF8.GetBytes("mysmallkey");
   myAes.Key = key; //ERROR
}
我得到一个错误:

System.Security.Cryptography.CryptographicException: 'Specified key is not a valid size for this algorithm.'

我做错了什么?谢谢。

您在这里做错了-
var key=Encoding.UTF8.GetBytes(“mysmallkey”)

我建议您在AES类中使用
LegalKeySizes属性
,可以检查密钥的有效大小。有效密钥大小由特定的对称算法实现指定,并在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位,则128位密钥大小的密钥长度应为16
试试这个

 var key = Encoding.UTF8.GetBytes("mysmallkey123456");
对于192位-对于192位密钥,密钥的长度应为24 大小示例键将如下所示

对于256位-对于256位密钥,密钥的长度应为32 大小样本键


阅读文档-AES具有所需的最小密钥长度。是的,但是如何将任意大小的密钥转换为AES可以接受的密钥?这里没有更多内容:密码不是AES密钥。在密码上使用一些哈希算法,使您可以使用一个恒定的大小我很高兴能帮助您。。!
mysmallkey12345512987651 
mysmallkey1234551298765134567890