Здравствуйте. Нашёл в интернете пример для шифрования, немного изменил его под свою программу. | Код | 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 - 26.2.2010, 05:46
|