Что делать с ключом и вектором AES? - C#

Узнай цену своей работы

Формулировка задачи:

Мне надо зашифровать допустим "ggqgqg3t3gggggg335" и потом расшифровать. Вот что я делаю
System.Security.Cryptography.Aes shifr = System.Security.Cryptography.Aes.Create();
            shifr .KeySize = 128;
Конструктор при создание экземпляра сразу генерит shifr.Key и shifr.IV , для зашифровки нашу строку конвертим в байт
Encoding.UTF8.GetBytes("ggqgqg3t3gggggg335")
, с этим все понятно , а вот если мне надо расшифровать на другом компе тут все и проблемы (((( я делаю так : после зашифровки я первоначальный ключ и вектор перегоняю в строку
BitConverter.ToString(shifr.Key).Replace("-", String.Empty)
BitConverter.ToString(shifr.IV).Replace("-", String.Empty)
и на другом компе уже при расшифровке просто использую готовый ключ и вектор
Encoding.UTF8.GetBytes(BitConverter.ToString(shifr.IV).Replace("-", String.Empty))
Но при декодирование происходит эксепшен
Необработанное исключение типа "System.ArgumentException" произошло в System.Core.dll
 
Дополнительные сведения: Указанный вектор инициализации (IV) не соответствует размеру блока для этого алгоритма.
Подскажите что не так делаю (((((

Решение задачи: «Что делать с ключом и вектором AES?»

textual
Листинг программы
System.Security.Cryptography.Aes shifr = System.Security.Cryptography.Aes.Create();
string ivString = BitConverter.ToString(shifr.IV);
byte[] iv = ivString.Split('-').Select(s => Convert.ToByte(s, 16)).ToArray();
Debug.Assert(iv.SequenceEqual(shifr.IV));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5