Fehler bei einem Verschlüsselungs Programm

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von user44.

    Fehler bei einem Verschlüsselungs Programm

    Hallo Community ,
    ich habe ein Problem...

    ich schreibe gerade an einem Programm dass sämtliche Pw´s aufbewahr

    mein Programm ist so aufgebaut:

    1.Beim Form-Close habe ich dies eingebaut

    VB.NET-Quellcode

    1. Dim f As New IO.FileStream("C:\Games1\new\Test.txt", IO.FileMode.Create)
    2. Dim bf As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
    3. Dim l(ListView1.Items.Count - 1) As ListViewItem
    4. ListView1.Items.CopyTo(l, 0)
    5. bf.Serialize(f, l)
    6. f.Close()

    dann würd das test file in eine aes verschlüsselung umgewandelt
    und das test-file geschlöscht
    2. Beim laden der form habe ich eine aes enteschlüsselung eingebaut
    sie wandelt das umgewandelte file wieder zurück und speichert sie als new.txt
    dann sollte meine form geöffnet werden

    mein problem ich bekomme eine fehler meldung an dem teil wo mein Programm die listview öffnen soll

    Fehlermeldung:Der binäre Stream "239" enthält keinen gültigen BinaryHeader. Möglicherweise ist der Stream ungültig oder die Objektversion wurde zwischen der Serialisierung und der Deserialisierung geändert.


    thx for help

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „user44“ ()

    ... ohne Verschlüsselung geht es natürlich. Die jetzige vorgehensweise ist allerdings verbesserungswürdig (Datei schreiben, lesen, löschen, neu schreiben). Serialisier in einen Memorystream, dessen Inhalt kannst du dann verschlüsseln. Wenn du Hilfe willst, musst du schon den ganzen Code posten. btw: Hast du meinen Code auch verstanden oder einfach nur C&P gemacht?
    der lade code

    VB.NET-Quellcode

    1. If My.Computer.FileSystem.FileExists("C:\Games1\new\Pfadverschl.txt") Then
    2. 'entschlüsseln
    3. Dim rd As New RijndaelManaged
    4. Dim rijndaelIvLength As Integer = 16
    5. Dim md5 As New MD5CryptoServiceProvider
    6. Dim key() As Byte = md5.ComputeHash(Encoding.UTF8.GetBytes(TextBox11.Text))
    7. md5.Clear()
    8. TextBox13.Text = My.Computer.FileSystem.ReadAllText("C:\Games1\new\Pfadverschl.txt")
    9. Dim encdata() As Byte = Convert.FromBase64String(TextBox13.Text)
    10. Dim ms As New MemoryStream(encdata)
    11. Dim iv(15) As Byte
    12. ms.Read(iv, 0, rijndaelIvLength)
    13. rd.IV = iv
    14. rd.Key = key
    15. Dim cs As New CryptoStream(ms, rd.CreateDecryptor, CryptoStreamMode.Read)
    16. Dim data(ms.Length - rijndaelIvLength) As Byte
    17. Dim i As Integer = cs.Read(data, 0, data.Length)
    18. TextBox12.Text = System.Text.Encoding.UTF8.GetString(data, 0, i)
    19. cs.Close()
    20. rd.Clear()
    21. TextBox13.Text = ""
    22. My.Computer.FileSystem.WriteAllText("C:\Games1\new\New.txt", TextBox12.Text, False)
    23. 'entschlüsseln ende
    24. 'ListView Inhalt laden
    25. If Not TextBox12.Text = "" Then
    26. Dim f As New IO.FileStream("C:\Games1\new\New.txt", IO.FileMode.Open)
    27. Dim bf As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
    28. ListView1.Items.Clear()
    29. ListView1.Items.AddRange(bf.Deserialize(f))
    30. f.Close()
    31. End If
    32. My.Computer.FileSystem.DeleteFile("C:\Games1\new\New.txt")
    33. End If
    34. TextBox12.Text = ""
    35. MsgBox("laden fertig")


    der close code

    VB.NET-Quellcode

    1. 'Datei überprüfen
    2. If Not My.Computer.FileSystem.DirectoryExists("C:\Games1\new") Then
    3. My.Computer.FileSystem.CreateDirectory("C:\Games1\new")
    4. End If
    5. 'ListView Inhalt speichern
    6. Dim f As New IO.FileStream("C:\Games1\new\Test.txt", IO.FileMode.Create)
    7. Dim bf As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
    8. Dim l(ListView1.Items.Count - 1) As ListViewItem
    9. ListView1.Items.CopyTo(l, 0)
    10. bf.Serialize(f, l)
    11. f.Close()
    12. 'Verschlüsseln
    13. TextBox12.Text = My.Computer.FileSystem.ReadAllText("C:\Games1\new\Test.txt")
    14. My.Computer.FileSystem.DeleteFile("C:\Games1\new\Test.txt")
    15. Dim rd As New RijndaelManaged
    16. Dim md5 As New MD5CryptoServiceProvider
    17. Dim key() As Byte = md5.ComputeHash(Encoding.UTF8.GetBytes(TextBox11.Text))
    18. md5.Clear()
    19. rd.Key = key
    20. rd.GenerateIV()
    21. Dim iv() As Byte = rd.IV
    22. Dim ms As New MemoryStream
    23. ms.Write(iv, 0, iv.Length)
    24. Dim cs As New CryptoStream(ms, rd.CreateEncryptor, CryptoStreamMode.Write)
    25. Dim data() As Byte = System.Text.Encoding.UTF8.GetBytes(TextBox12.Text)
    26. cs.Write(data, 0, data.Length)
    27. cs.FlushFinalBlock()
    28. Dim encdata() As Byte = ms.ToArray()
    29. TextBox13.Text = Convert.ToBase64String(encdata)
    30. cs.Close()
    31. rd.Clear()
    32. My.Computer.FileSystem.WriteAllText("C:\Games1\new\Pfadverschl.txt", TextBox13.Text, False)
    33. 'verschlüsseln ENDE