C# 在.NET 4.0中使用AscienceOding进行编码时,传递给我的密钥长度是否有任何限制?

C# 在.NET 4.0中使用AscienceOding进行编码时,传递给我的密钥长度是否有任何限制?,c#,.net,.net-4.0,C#,.net,.net 4.0,我使用的是C#4.0 Windows应用程序。我想使用System.Text.ascienceoding.So提供加密密钥以保护我的文件,这里我的加密密钥是SARAVANAN,密钥长度是9 String enKey="SARAVANAN"; DESCryptoServiceProvider des = new DESCryptoServiceProvider(); des.Key = ASCIIEncoding.ASCII.GetBytes(enKey); 它引发了类似“指定的密钥不是此

我使用的是C#4.0 Windows应用程序。我想使用System.Text.ascienceoding.So提供加密密钥以保护我的文件,这里我的加密密钥是SARAVANAN,密钥长度是9

 String enKey="SARAVANAN";
 DESCryptoServiceProvider des = new DESCryptoServiceProvider();
 des.Key = ASCIIEncoding.ASCII.GetBytes(enKey);
它引发了类似“指定的密钥不是此算法的有效大小”这样的异常。但它仅在长度为8时工作正常。因此,我想知道由于此ASCII编码,此长度是否有任何限制


请引导我离开这个问题?

这与
ascienceoding
无关。这与
DESCryptoServiceProvider
有关。发件人:

此算法支持64位的密钥长度


换句话说,您传入的密钥应该是64位或8字节。如何获得这8个字节取决于您-但是9个ASCII字母字符串的ASCII编码形式将是9个字节(72位)。

64位是DES加密算法的唯一有效密钥大小


ASCII编码每个字符使用8位,因此8个ASCII字符==64位。

如果您查看一下,您会发现
此算法支持64位的密钥长度。所以一个键的唯一有效长度是8个字符。

Fischermaen:谢谢你的回答Roy Dictus:谢谢你的回答