2011-11-03 30 views
0

編輯。嘗試使用AES加密/解密。進度== null;

我想我有一個問題,創造一個正確的輸入到加密/解密方法:這些代碼行做的伎倆:

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

     mainWindow.ChangeTextBox = encrypted + Environment.NewLine + decrypted; 

我只是玩弄,並試圖找出如何加密/通過使用AES工作來解密。我指的是這個article(幾乎複製和粘貼:(試圖學習)。

在那裏,他們給我完整的加密/解密方法,我試圖修改。我想通過一個由。ArrayList中,然後用字符串生成器綁定好像我能夠對數據進行加密,但解密會導致錯誤:

Length of the data to decrypt is invalid. 

在與代碼行:

ByteCount = CryptoStream.Read(PlainTextBytes, 0, PlainTextBytes.Length); 

我怎樣才能實現這個代碼是有用的我的程序正常工作?

問候。

+0

您可以將您的代碼編輯到證明該問題所需的最低限度嗎?這是很多代碼。 – Amy

+0

是否有可能說什麼參數(明文,密文,通過,usrName)導致該異常? – ordag

+0

@ordag:'PlainTextBytes.Length'似乎是問題所在。 – HelpNeeder

回答

1

我還沒有仔細查看代碼的細節,但看起來在調用EncryptDecrypt時參數的順序與方法的定義不匹配。在對這些方法的調用中,您似乎有用戶名,密碼,普通/密文;而這些方法的簽名爲明文/密文,密碼,用戶名爲

+0

是的,我意識到這一點,並在發佈問題後對其進行了更改。讓我的方法參數格式正確,我仍然得到相同的錯誤。 – HelpNeeder

+0

你是對的!我錯誤地解釋了你的問題!我用不正確的行編輯了我的OP。 – HelpNeeder

1

我是正確的,它是由空白或空字符串作爲純文本? ;-)
"lol1"不能解密,因爲它不是一個有效的密文長度(填充!)不要說它沒有任何意義。

+0

那麼,如果我刪除文本並保留爲空字符串,它仍然會導致問題。 – HelpNeeder

+0

@HelpNeeder:如果你刪除了什麼? – ordag