首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在.NET 4.0中传递给使用ASCIIEncoding编码的密钥长度有什么限制吗?

在.NET 4.0中传递给使用ASCIIEncoding编码的密钥长度有什么限制吗?
EN

Stack Overflow用户
提问于 2011-12-12 16:10:10
回答 3查看 6.6K关注 0票数 7

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

代码语言:javascript
复制
 String enKey="SARAVANAN";
 DESCryptoServiceProvider des = new DESCryptoServiceProvider();
 des.Key = ASCIIEncoding.ASCII.GetBytes(enKey);

它引发了类似“指定的密钥不是此算法的有效大小”的异常.But它在8 only.So的长度下工作良好,我想知道由于这种ASCII码对此长度是否有任何限制...

请引导我走出这个问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-12 16:16:40

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

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

票数 12
EN

Stack Overflow用户

发布于 2011-12-12 16:15:58

这和ASCIIEncoding没有任何关系。这跟DESCryptoServiceProvider有关。来自the documentation

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

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

票数 6
EN

Stack Overflow用户

发布于 2011-12-12 16:16:53

如果你看一下MSDN,你可以看到This algorithm supports a key length of 64 bits。因此,密钥的唯一有效长度是8个字符。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8471449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档