Что делать с ключом и вектором AES? - C#
Формулировка задачи:
Мне надо зашифровать допустим "ggqgqg3t3gggggg335" и потом расшифровать. Вот что я делаю
Конструктор при создание экземпляра сразу генерит shifr.Key и shifr.IV , для зашифровки нашу строку конвертим в байт
, с этим все понятно , а вот если мне надо расшифровать на другом компе тут все и проблемы (((( я делаю так :
после зашифровки я первоначальный ключ и вектор перегоняю в строку
и на другом компе уже при расшифровке просто использую готовый ключ и вектор
Но при декодирование происходит эксепшен
Подскажите что не так делаю (((((
Листинг программы
- System.Security.Cryptography.Aes shifr = System.Security.Cryptography.Aes.Create();
- shifr .KeySize = 128;
Листинг программы
- 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));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д