Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Траблы с cryptostream, Недопустимая длина данных д, помогите решить.....уже кчу инфы перекап 
:(
    Опции темы
vadym62
Дата 18.5.2014, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 18.5.2014

Репутация: нет
Всего: нет



Помогите пожалуйста , а то закалибался. Вроде все правильно, но на этой строчке выдает Недопустимая длина данных для дешифрирования. Как будто чего то не хватает....


Код

 int count = cryptostream.Read(decryptBytes, 0, decryptBytes.Length);


вот весть код:

Код


public DataTable Decrypt(DataTable ks)
        {
            string str2Decrypt;
            for (int curRow = 0; curRow < ks.Rows.Count; curRow++)
            {
                for (int curCol = 0; curCol < ks.Columns.Count; curCol++)
                {
                   
                        var s = ks.Rows[curRow][curCol].GetType();
                        if (ks.Rows[curRow][curCol].GetType() == i.GetType())
                        {
                            str2Decrypt = Convert.ToString(ks.Rows[curRow][curCol]);
                            str2Decrypt = Convert.ToBase64String(Encoding.UTF8.GetBytes(str2Decrypt));
                            //преобразуем строку в массив бaйт в кодировке ASCII
                            byte[] initVectorBytes = Encoding.ASCII.GetBytes(initVector);
                            byte[] str2DecryptBytes = Convert.FromBase64String(str2Decrypt);
                            byte[] saltValueBytes = Encoding.ASCII.GetBytes(saltValue);
                            //----------------------------------------------------------
                            //формируем ключ для шифрования
                            PasswordDeriveBytes password = new PasswordDeriveBytes(passPhase, saltValueBytes, hashAlgorithm, passwordIterations);
                            //создаём экз класса для сим шифрования
                            RijndaelManaged symmCrypt = new RijndaelManaged();
                            // уставн режим связанных блоков
                            symmCrypt.Mode = CipherMode.CBC;
                            //массив байт ключа
                            byte[] keyBytes = password.GetBytes(keySize / 8);
                            //создаём экз класса - шифрователя
                            ICryptoTransform cryptoTransform = symmCrypt.CreateDecryptor(keyBytes, initVectorBytes);
                            //теперь можно шифровать данные :
                            //поток для чтения данных из опертив память
                            MemoryStream memStream = new MemoryStream(str2DecryptBytes);
                            //запускаем поток шифрования :
                            CryptoStream cryptostream = new CryptoStream(memStream, cryptoTransform, CryptoStreamMode.Read);
                            //создадим массив куда считывать
                            byte[] decryptBytes = new byte[str2DecryptBytes.Length];
                           // byte[] decryptByte = Encoding.UTF8.GetCharCount(decryptBytes);
                            // читаем из потока :
                          [color=red]  int count =
                            cryptostream.Read(decryptBytes, //что шифруем
                                0, //смещение от начало
                                decryptBytes.Length);[/color] //длина байта
                            //закрываем все потоки
                            cryptostream.Close();
                            //возьмём зашифрованые данные
                            memStream.Close();
                            //возвращаем зашифрованную строку:
                            string res = Encoding.ASCII.GetString(decryptBytes, 0, count);
                            ks.Rows[curRow][curCol] = res;
                        }

                    }
            }
            return ks;



Это сообщение отредактировал(а) vadym62 - 18.5.2014, 22:59
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.