我正试图从给定的链接在asp.net应用程序中实现DES加密:
根据给定的代码,它的工作正常,但如果我在字节中添加一个字符变量,则抛出异常
static byte[] bytes = ASCIIEncoding.ASCII.GetBytes("ZeroCool"); //Working fine
static byte[] bytes = ASCIIEncoding.ASCII.GetBytes("ZeroCoola"); //throwing exception
有人知道如何解决这个问题吗?
DES加密中是否有8个字符的限制?
由于
答案 0 :(得分:2)
DES支持56位密钥,因此您无法添加另一个密钥。实际上56位= 7个字节,所以我认为"Zerocool"
有效,因为所有字符都是标准ASCII,而每个字符只占7位。
有人说......
DES是一个非常古老的密码。现代家用电脑可轻松实现56位密钥。您应该使用支持更大密钥的密码,例如AES。
我在文章末尾阅读了这篇文章:
使用DES,您可以加密或解密用户的密码或其他内容,如果您愿意,可以深入研究算法。
哪个让我担心。密码永远不应加密。仅根据这一陈述,我会忽略整篇文章毫无用处。
答案 1 :(得分:1)
该行:
static byte[] bytes = ASCIIEncoding.ASCII.GetBytes("ZeroCool");
不是您尝试加密的字符串的字节数组,它是加密过程的关键。
它与初始化向量(IV)一起用于设置加密。
writer.Write(originalString);
如果您正在查询加密输出,那么您应该在哪里查看。