我嘗試解密加密的字節數組(用K1加密並用K2解密)。當它試圖關閉我的密碼流關閉密碼流時C#中的DES解密錯誤「Bad Data」
這裏是我的DES解密
public Byte[] Decrypt(Byte[] cipherData, Byte[] key, Byte[] iv)
{
MemoryStream ms = new MemoryStream();
DES mDES = DES.Create();
mDES.Key = key;
mDES.IV = iv;
mDES.Padding = PaddingMode.PKCS7;
CryptoStream cs = new CryptoStream(ms, mDES.CreateDecryptor(), CryptoStreamMode.Write);
cs.Write(cipherData, 0, cipherData.Length);
cs.Close();
Byte[] decryptedData = ms.ToArray();
return decryptedData;
}
的代碼片段的初始向量是相同的加密Visual Studio中拋出一個異常「BAD DATA」。我不知道爲什麼會發生此錯誤。
補充: 所推薦的格雷格B,我張貼在這裏的加密我的代碼段。加密的輸出是解密輸入(兩個不同的密鑰)
public Byte[] Decrypt(Byte[] cipherData, Byte[] key, Byte[] iv)
{
MemoryStream ms = new MemoryStream();
DES mDES = DES.Create();
mDES.Key = key;
mDES.IV = iv;
mDES.Padding = PaddingMode.PKCS7;
CryptoStream cs = new CryptoStream(ms, mDES.CreateDecryptor(), CryptoStreamMode.Write);
cs.Write(cipherData, 0, cipherData.Length);
cs.Close();
Byte[] decryptedData = ms.ToArray();
return decryptedData;
}
如果解密時,它拋出一個異常,你的加密程序可能有問題。也許值得發佈該代碼太... – 2011-05-24 08:01:58
看看這裏:http://stackoverflow.com/questions/5591361/c-bad-data-exception-when-decrypting-encrypted-file – 2011-05-24 08:09:33
我看了一下鏈接建議通過Alireze,但在我看來,它不能解決我的問題:( – 2011-05-24 08:17:06