C# 正在尝试使用AES加密/解密。进度==空;

C# 正在尝试使用AES加密/解密。进度==空;,c#,encryption,aes,C#,Encryption,Aes,编辑 我想我在创建加密/解密方法的正确输入时遇到了问题:这些代码行实现了以下功能: string encrypted = en.Encrypt(stringBuilder.ToString(), "username", "password"); string decrypted = en.Decrypt(encrypted, "username", "password"); mainWindow.ChangeTextBox = encrypted

编辑

我想我在创建加密/解密方法的正确输入时遇到了问题:这些代码行实现了以下功能:

        string encrypted = en.Encrypt(stringBuilder.ToString(), "username", "password");
        string decrypted = en.Decrypt(encrypted, "username", "password");

        mainWindow.ChangeTextBox = encrypted + Environment.NewLine + decrypted;
我只是随便玩玩,试图弄清楚使用AES加密/解密是如何工作的。我指的是这个(几乎是复制和粘贴:(尝试学习)

在那里,他们为我提供了完整的加密/解密方法,我试图修改这些方法。我试图传递由ArrayList创建的条目列表,然后用字符串生成器绑定。看起来我能够加密数据,但解密会导致错误:

Length of the data to decrypt is invalid.
与代码一致:

ByteCount = CryptoStream.Read(PlainTextBytes, 0, PlainTextBytes.Length);
如何实现这段代码,使其对我的程序有用并正确工作


关于。

我说得对吗?它是由作为明文的空字符串或空字符串引起的?;-)

“lol1”
无法解密,因为它不是有效的密文长度(填充!)
更不用说它没有任何意义。

我没有详细查看代码,但调用
Encrypt
Decrypt
的参数顺序似乎与方法的定义不匹配。在对这些方法的调用中,您似乎有用户名、密码、普通/cyphertext;然而,这些方法具有签名明文/cyphertext、密码和用户名。

您能将代码编辑到演示问题所需的最低限度吗?代码太多了。有没有可能说是什么参数(明文、密文、pass、usrName)导致了这种异常?@ordag:“PlainTextBytes.Length”似乎是个问题。@Inuyasha:我试过了,但还有很多代码。嗯,如果我删除文本并保留为空字符串,仍然会导致问题。@HelpNeeder:如果您删除了什么?是的,我知道这一点,并且在发布问题后已对其进行了更改。如果我的方法参数格式正确,我仍然会得到相同的错误。你是正确的!我误解了你的问题!我用不正确的行编辑了我的OP。