Я пытаюсь расшифровать зашифрованный массив байтов (зашифровать с помощью K1 и расшифровать с помощью K2).Visual Studio выдает исключение «ПЛОХИЕ ДАННЫЕ», когда пытается закрыть мой криптопоток
. Вот мой фрагмент кода для дешифрования 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;
}
, исходный вектор такой же, как и для шифрования.Я не знаю, почему произошла эта ошибка.
Добавлено: В соответствии с рекомендациями Грега Б. я выкладываю здесь свой фрагмент кода шифрования.Вывод шифрования - это ввод дешифрования (два разных ключа)
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;
}