Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2017, 12:57   #1
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию Возврат значение byte

Взял с мсдн функцию расшифровки Aes алгоритма

Код:
        static string DecryptStringFromBytes(byte[] cipherText, byte[] Key, byte[] IV)
        {
            if (cipherText == null || cipherText.Length <= 0)
                throw new ArgumentNullException("cipherText");
            if (Key == null || Key.Length <= 0)
                throw new ArgumentNullException("Key");
            if (IV == null || IV.Length <= 0)
                throw new ArgumentNullException("IV");

            string plaintext = "";

            using (Aes rijAlg = Aes.Create())
            {
                rijAlg.Padding = PaddingMode.None;
                rijAlg.Key = Key;
                rijAlg.IV = IV;

                ICryptoTransform decryptor = rijAlg.CreateDecryptor(rijAlg.Key, rijAlg.IV); 

                using (MemoryStream msDecrypt = new MemoryStream(cipherText))
                {
                    using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
                    {
                        using (StreamReader srDecrypt = new StreamReader(csDecrypt))
                        {
                            plaintext = srDecrypt.ReadToEnd();
                        }
                    }
                }

            }
            return plaintext;
        }
Запутался чуток, как сделать чтобы не строка возвращалась а массив byte, строка вообще не нужна

Код:
Encoding.Default.GetBytes(plaintext )
Такая конструкция не нужна, нужно минимум действий, чтобы сразу байт взять, как?
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 13.05.2017, 13:12   #2
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

ОО, допер, нашел, короче вот как

Код:
            byte[] decryptedBytes = null;

            using (MemoryStream ms = new MemoryStream())
            {
                using (Aes AES = new AesManaged())
                {
                    AES.Padding = PaddingMode.None;
                    AES.Key = Key;
                    AES.IV = IV;

                    using (var cs = new CryptoStream(ms, AES.CreateDecryptor(AES.Key, AES.IV), CryptoStreamMode.Write))
                    {
                        cs.Write(cipherText, 0, cipherText.Length);
                        cs.Close();
                    }
                    decryptedBytes = ms.ToArray();
                }
            }

            return decryptedBytes;
        }
a.n.o.n.i.m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
IntPtr в byte[] DronLee Общие вопросы .NET 1 26.06.2015 16:22
Как узнать byte-значение прозрачности чужого окна Foxpronet Общие вопросы Delphi 0 02.11.2014 23:31
byte массив offname C# (си шарп) 3 08.09.2011 17:40
2 byte to Word Digital_Slavik Общие вопросы Delphi 6 26.12.2010 11:49
byte - string fize Помощь студентам 4 10.01.2010 02:33