如何在asp.net中实现DES加密/解密时解决错误?

时间:2011-09-16 05:16:34

标签: asp.net encryption encryption-symmetric

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

DES encrypt/decrypt

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

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

enter image description here

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

DES加密中是否有8个字符的限制?

由于

2 个答案:

答案 0 :(得分:2)

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

有人说......

  1. DES是一个非常古老的密码。现代家用电脑可轻松实现56位密钥。您应该使用支持更大密钥的密码,例如AES。

  2. 我在文章末尾阅读了这篇文章:

  3.   

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

    哪个让我担心。密码永远不应加密。仅根据这一陈述,我会忽略整篇文章毫无用处。

答案 1 :(得分:1)

该行:

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

不是您尝试加密的字符串的字节数组,它是加密过程的关键。

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

writer.Write(originalString);

如果您正在查询加密输出,那么您应该在哪里查看。