我尝试解密加密的字节数组(用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