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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2010, 06:24   #1
DimkraS
Новичок
Джуниор
 
Регистрация: 27.02.2010
Сообщений: 1
По умолчанию Шифрование VB.NET

Здравствуйте. Мне нужно выполнить Шифрование и де шифрование текста в текстовом документе.
Код:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        'Дешифрование
        Dim IV() As Byte = {172, 44, 172, 193, 7, 48, 131, 165}
        Dim Key() As Byte = {93, 252, 76, 113, 209, 29, 253, 168}

        Dim DES As New DESCryptoServiceProvider
        Dim DES_Decryptor As ICryptoTransform = DES.CreateDecryptor(DES.Key, DES.IV)
        Dim fs As New FileStream("Шифрование.txt", FileMode.Open)
        Dim CrStream As New CryptoStream(fs, DES_Decryptor, CryptoStreamMode.Read)
        Dim sr As New BinaryReader(CrStream)
        ' Служит для определения размера файла
        Dim f As New FileInfo("Шифрование.txt")
        Dim enc As New UnicodeEncoding

        ' Показываем результат
        TextBox2.Text = enc.GetString(sr.ReadBytes(f.Length))
        ' Закрываем потоки
        sr.Close()
        fs.Close()
End Sub

Private Function ToBytes(ByVal s As String) As Byte()

        Dim enc As New UnicodeEncoding

        Return enc.GetBytes(s)

End Function

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        'Шифрование
        Dim IV() As Byte = {172, 44, 172, 193, 7, 48, 131, 165}
        Dim Key() As Byte = {93, 252, 76, 113, 209, 29, 253, 168}

        Dim DES As New DESCryptoServiceProvider
        Dim DES_Encryptor As ICryptoTransform = DES.CreateEncryptor(DES.Key, DES.IV)
        Dim fs As New FileStream("Шифрование.txt", FileMode.Create)
        Dim CrStream As New CryptoStream(fs, DES_Encryptor, CryptoStreamMode.Write)
        ' Получаем массив байтов
        Dim b() As Byte = ToBytes(TextBox1.Text)
        ' Шифруем
        CrStream.Write(b, 0, b.Length)
        ' Закрываем поток
        CrStream.Close()
        fs.Close()
        fs = Nothing

        ' Создаём читатель потока
        fs = New FileStream("Шифрование.txt", FileMode.Open)
        Dim sr As New StreamReader(fs, Encoding.Default)
        ' Показываем результат
        TextBox2.Text = sr.ReadToEnd
        ' Закрываем потоки
        sr.Close()
        fs.Close()

End Sub
Шифрование у меня работает, а вот расшифровать тест не получается, появляется ошибка "Плохие данные" в строке:
Код:
TextBox2.Text = enc.GetString(sr.ReadBytes(f.Length))
И никак не могу исправить эту ошибку, подскажите пожалуйста, что я неправильно сделал.
DimkraS вне форума Ответить с цитированием
Ответ


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