Я пытаюсь расшифровать зашифрованный массив байтов (шифровать с помощью K1 и расшифровывать с помощью K2). Visual Studio генерирует исключение «BAD DATA», когда он пытается закрыть мой Crypto класс, сформированный с учетом способностей учащихся Ошибка дешифрования DES «Плохие данные» в C# при закрытии криптостома
вот мой фрагмент кода 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;
}
начальный вектор такой же, как шифрование. Я не знаю, почему эта ошибка произошла.
Добавлено: В соответствии с рекомендациями Greg 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;
}
Если он бросает исключение при расшифровке , возможно, что-то не так с вашей программой шифрования. Возможно, стоит разместить этот код тоже ... –
Посмотрите здесь: http://stackoverflow.com/questions/5591361/c-bad-data-exception-when-decrypting-encrypted-file –
Я посмотрел ссылку, предложенную Алирезе, но мне кажется, что он не разрешает мою проблему :( –