Мне нужно выполнить скрытие данных в зашифрованном изображении. Чтобы скрыть данные, мне нужно иметь растровое изображение. Но я не знаю, как сохранить изображение в виде растрового изображения.Открыть зашифрованное изображение в виде растрового изображения C#
Ниже приведен мой код шифрования.
public void EncryptFile(string source, string destination)
{
string sKey = "super545";
FileStream fsInput = new FileStream(source, FileMode.Open, FileAccess.Read);
FileStream fsEncrypted = new FileStream(destination, FileMode.Create, FileAccess.Write);
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desencrypt = DES.CreateEncryptor();
CryptoStream cryptostream = new CryptoStream(fsEncrypted, desencrypt, CryptoStreamMode.Write);
byte[] bytearrayinput = new byte[fsInput.Length - 1];
fsInput.Read(bytearrayinput, 0, bytearrayinput.Length);
cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length);
cryptostream.Close();
fsInput.Close();
fsEncrypted.Close();
}
Это называется как:
EncryptFile(originalimage, output);
output
переменная строка с пути, чтобы сохранить зашифрованный файл.
Как я могу вызвать функцию для запуска шифрования?
Я получаю ошибку параметр является недействительным, когда я ударил эту строку:
Bitmap bitmap3 = new Bitmap(output);
Он появляется код шифрование всего файла растрового изображения, а не данных, содержащихся внутри. Вот почему он терпит неудачу, вы зашифровали формат файла и не понимаете, что это такое. –
Я попытался исключить заголовки: - byte [] bytearrayinput = новый байт [fsInput.Length - 54]; все еще не может открыть изображение. – Abby
есть несколько вещей, которые я хотел бы указать здесь ... за исключением заголовков СЛЕДУЕТ означать: скопируйте их в выходной файл БЕЗ их шифрования ... не только на 54 байт меньше от входного файла ... 54 байт может быть размер заголовка, но, возможно, вы также захотите оставить цветные таблицы/цветные маски неповрежденными ... и, конечно же, все это будет работать только с несжатыми растровыми изображениями, поэтому вам может потребоваться проверить, является ли поле заголовка biCompression равным 0 или 3 ... если нет, отклоните изображение или сначала распакуйте его ... – DarkSquirrel42