Что делать с ключом и вектором 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));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д