C# 在.NET 4.0中使用AscienceOding进行编码时,传递给我的密钥长度是否有任何限制?
我使用的是C#4.0 Windows应用程序。我想使用System.Text.ascienceoding.So提供加密密钥以保护我的文件,这里我的加密密钥是SARAVANAN,密钥长度是9C# 在.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); 它引发了类似“指定的密钥不是此
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:谢谢你的回答