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

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

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

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

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

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

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут