Здравствуйте. Мне нужно выполнить Шифрование и де шифрование текста в текстовом документе.
Код:
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))
И никак не могу исправить эту ошибку, подскажите пожалуйста, что я неправильно сделал.