1

我正在尝试通过给定的链接在 asp.net 应用程序中实现 DES 加密:

DES加密/解密

根据给定的代码,它工作正常,但如果我在字节变量中添加一个字符,它会抛出异常

static byte[] bytes = ASCIIEncoding.ASCII.GetBytes("ZeroCool"); //Working fine
static byte[] bytes = ASCIIEncoding.ASCII.GetBytes("ZeroCoola"); //throwing exception

在此处输入图像描述

有人知道如何解决这个问题吗?

DES加密有8个字符的限制吗?

谢谢

4

2 回答 2

2

DES 支持 56 位密钥,因此您不能添加另一个密钥。实际上 56 位 = 7 个字节,所以我认为可以"Zerocool"工作,因为所有字符都是标准的 ASCII,而每个字符只占用 7 位。

话虽如此...

  1. DES 是一个非常古老的密码。现代家用计算机可以轻松破解 56 位密钥。您应该使用支持较大密钥的密码,例如 AES。

  2. 我在文章的最后读到了这个:

使用 DES,您可以加密或解密用户的密码或其他内容,如果您愿意,还可以深入研究算法。

这让我很担心。永远不应加密密码。仅基于该声明,我会认为整篇文章毫无用处。

于 2011-09-16T05:21:47.383 回答
1

该行:

static byte[] bytes = ASCIIEncoding.ASCII.GetBytes("ZeroCool");

不是您要加密的字符串的字节数组,它是加密过程的密钥。

它与初始化向量 (IV) 一起用于设置加密。

writer.Write(originalString);

如果您正在查询加密输出,您应该在哪里寻找。

于 2011-09-16T05:24:37.150 回答