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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Недопустимая длина данных для дешифрования 
:(
    Опции темы
DimkraS
Дата 3.3.2010, 13:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здравствуйте.
Сделал две программы. 
Первая считывает данные из текстового файла, каждая строка файла шифруется во временный файл, затем считывается и записывается в другой файл но уже после предыдущей строки, получается файл в которой каждая отдельная строка зашифрована.

Код

Dim Чтение As New System.IO.StreamReader(Имя + ".txt", System.Text.ASCIIEncoding.GetEncoding(1251))
i = -1
p = -1
Do While Чтение.Peek() <> -1
      i = i + 1
      ReDim Preserve s(i)
      s(i) = Чтение.ReadLine
      Dim RMCrypto As New Security.Cryptography.RijndaelManaged
      Dim fs As New IO.FileStream("Шифрование.txt", IO.FileMode.Create)
      Dim CryptStream As New Security.Cryptography.CryptoStream(fs, RMCrypto.CreateEncryptor(Key, IV), Security.Cryptography.CryptoStreamMode.Write)
      Dim SWriter As New IO.StreamWriter(CryptStream)
      SWriter.WriteLine(s(i))
      SWriter.Close()
      fs.Close()
      CryptStream.Close()
      Dim Чтение2 As New System.IO.StreamReader("Шифрование.txt", System.Text.ASCIIEncoding.GetEncoding(1251))
      Dim Дозапись As New System.IO.StreamWriter(Имя + "(2)" + ".txt", True, System.Text.ASCIIEncoding.GetEncoding(1251))
      Дозапись.WriteLine(Чтение2.ReadLine)
      Дозапись.Close()
      Чтение2.Close()
Loop
Чтение.Close()


Вторая программ, открывает файл с шифрованными данными, считывает строку, затем записывает её во временный файл, и расшифровывает её из файла в массив.

Код

Dim Чтение As New System.IO.StreamReader(Имя + ".txt", System.Text.ASCIIEncoding.GetEncoding(1251))
        i = -1
        p = -1
        Do While Чтение.Peek() <> -1
            i = i + 1

            Dim Дозапись As New System.IO.StreamWriter("C:\temp.txt", True, System.Text.ASCIIEncoding.GetEncoding(1251))
            Дозапись.WriteLine(Чтение.ReadLine)
            Дозапись.Close()

            Dim RMCrypto As New Security.Cryptography.RijndaelManaged
            Dim fs As New IO.FileStream("C:\temp.txt", IO.FileMode.Open)
            Dim CryptStream As New Security.Cryptography.CryptoStream(fs, RMCrypto.CreateDecryptor(Key, IV), Security.Cryptography.CryptoStreamMode.Read)
            Dim SReader As New IO.StreamReader(CryptStream)
            ReDim Preserve s(i)
            s(i) = SReader.ReadToEnd()
            SReader.Close()
            fs.Close()
            CryptStream.Close()
            Kill("C:\temp.txt")
        Loop
        Чтение.Close()


Расшифровать из файла в массив не удаётся, выходит ошибка "Недопустимая длина данных для дешифрования". Если расшифровывать данные из того же файла в который зашифровали, то всё нормально, но мне нужно хранить зашифрованные данные в файле построчно, поэтому я каждую строку переношу в отдельный файл для расшифровки. Заметил так же, что когда данные шифруются в текстовый файл, то не создаётся следующей пустой строки, а во временных файлах откуда я расшифровываю, пустая строка в конце создаётся, пробовал останавливать программу после создания файла и вручную убирать эту строку, всё равно выходит та же ошибка. Подскажите, как можно её исправить?

ps В оформлении кода указываю что пишу на VB.NET, но код всё равно не оформляется
--------------------
PM MAIL   Вверх
Freyzer
Дата 3.3.2010, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


обаятельный нахал
**


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

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



Для начала, попробуй кириллицу на латиницу измини, а там уже видно будет.


--------------------
Advocatus Dei smile. Advocatus Diaboli smileAjo!   
PM MAIL   Вверх
DimkraS
Дата 23.4.2010, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Неполучается
--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

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

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


 




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


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

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