Шифрование изображения с помощью AES C# ⇐ C#
-
Anonymous
Шифрование изображения с помощью AES C#
Мне нужно шифровать и расшифровывать изображение с помощью AES каждого алгоритма. У меня есть следующий код, который шифрует изображение:
public static byte[] MakeEncryption(изображение изображения, режим CipherMode, ключ byte[], byte[] iv) { используя (AesCryptoServiceProvider aes = новый AesCryptoServiceProvider { Mode = mode }) { aes.Key = ключ; аес.IV = iv; Шифратор ICryptoTransform = aes.CreateEncryptor(aes.Key, aes.IV); байт [] imageBytes; используя (var mstream = новый MemoryStream()) { image.Save(mstream, image.RawFormat); imageBytes = mstream.ToArray(); } используя (вход MemoryStream = новый MemoryStream (imageBytes)) используя (MemoryStream зашифрован = новый MemoryStream()) используя (CryptoStream cryptoStream = новый CryptoStream(зашифрованный, шифратор, CryptoStreamMode.Write)) { input.CopyTo(cryptoStream); вернуть зашифрованный.ToArray(); } } } И следующий код для преобразования массива байтов в изображение:
public static Image GetImage(byte[] байты) { Изображение img; используя (var ms = новый MemoryStream (байты)) { мс.Позиция = 0; ms.Write(байты, 0, байты.Длина); img = Image.FromStream(ms); // эта строка вызывает ArgumentException } вернуть изображение; } Каждый раз, когда я запускал свой код, у меня возникала одна и та же проблема: System.ArgumentException в соответствии с комментарием
Есть идеи, в чем дело?
Я пробовал много способов загрузки изображения в функцию шифрования, много способов использования разных типов Stream, ничего не помогло
Мне нужно шифровать и расшифровывать изображение с помощью AES каждого алгоритма. У меня есть следующий код, который шифрует изображение:
public static byte[] MakeEncryption(изображение изображения, режим CipherMode, ключ byte[], byte[] iv) { используя (AesCryptoServiceProvider aes = новый AesCryptoServiceProvider { Mode = mode }) { aes.Key = ключ; аес.IV = iv; Шифратор ICryptoTransform = aes.CreateEncryptor(aes.Key, aes.IV); байт [] imageBytes; используя (var mstream = новый MemoryStream()) { image.Save(mstream, image.RawFormat); imageBytes = mstream.ToArray(); } используя (вход MemoryStream = новый MemoryStream (imageBytes)) используя (MemoryStream зашифрован = новый MemoryStream()) используя (CryptoStream cryptoStream = новый CryptoStream(зашифрованный, шифратор, CryptoStreamMode.Write)) { input.CopyTo(cryptoStream); вернуть зашифрованный.ToArray(); } } } И следующий код для преобразования массива байтов в изображение:
public static Image GetImage(byte[] байты) { Изображение img; используя (var ms = новый MemoryStream (байты)) { мс.Позиция = 0; ms.Write(байты, 0, байты.Длина); img = Image.FromStream(ms); // эта строка вызывает ArgumentException } вернуть изображение; } Каждый раз, когда я запускал свой код, у меня возникала одна и та же проблема: System.ArgumentException в соответствии с комментарием
Есть идеи, в чем дело?
Я пробовал много способов загрузки изображения в функцию шифрования, много способов использования разных типов Stream, ничего не помогло
Мобильная версия