N'Abend nochmal,
hoffenlich spam ich nicht zuviel. Arbeite gerade an einem kleinen Password Manager und versuche gerade meine ListView beim speichern zu verschlüsseln und beim laden zu entschlüsseln.
Ich habe nach vb-magazin.de/forums/forums/p/5274/20674.aspx Post gearbeitet (hätte dort nachgefragt, aber die Registrierung ist down) und bekomme nun folgenden Fehler:
Hier ist der Code der beiden Funktion zur Verschlüsselung & Entschlüsselung:
Spoiler anzeigen
Hier ist der Code des Speichervorgangs:
Spoiler anzeigen
Ich hoffe ihr könnt mir helfen, vielen Dank schonmal!
Gruß,
hoffenlich spam ich nicht zuviel. Arbeite gerade an einem kleinen Password Manager und versuche gerade meine ListView beim speichern zu verschlüsseln und beim laden zu entschlüsseln.
Ich habe nach vb-magazin.de/forums/forums/p/5274/20674.aspx Post gearbeitet (hätte dort nachgefragt, aber die Registrierung ist down) und bekomme nun folgenden Fehler:
Hier ist der Code der beiden Funktion zur Verschlüsselung & Entschlüsselung:
Quellcode
- Public Function TripleDESEncryptMessage(ByVal plainMessage As String, ByVal password As String) As String
- Dim des As New TripleDESCryptoServiceProvider()
- des.IV = New Byte(7) {}
- Dim pdb As New PasswordDeriveBytes(password, New Byte(-1) {})
- des.Key = pdb.CryptDeriveKey("RC2", "MD5", 128, New Byte(7) {})
- Dim ms As New MemoryStream(plainMessage.Length * 2)
- Dim encStream As New CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write)
- Dim plainBytes As Byte() = Encoding.UTF8.GetBytes(plainMessage)
- encStream.Write(plainBytes, 0, plainBytes.Length)
- encStream.FlushFinalBlock()
- Dim encryptedBytes As Byte() = New Byte(ms.Length - 1) {}
- ms.Position = 0
- ms.Read(encryptedBytes, 0, CInt(ms.Length))
- encStream.Close()
- Return (Convert.ToBase64String(encryptedBytes))
- End Function
Quellcode
- Public Function TripleDESDecryptMessage(ByVal encryptedBase64 As String, ByVal password As String) As String
- Dim des As New TripleDESCryptoServiceProvider()
- des.IV = New Byte(7) {}
- Dim pdb As New PasswordDeriveBytes(password, New Byte(-1) {})
- des.Key = pdb.CryptDeriveKey("RC2", "MD5", 128, New Byte(7) {})
- Dim encryptedBytes As Byte() = Convert.FromBase64String(encryptedBase64)
- Dim ms As New MemoryStream(encryptedBase64.Length)
- Dim decStream As New CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write)
- decStream.Write(encryptedBytes, 0, encryptedBytes.Length)
- decStream.FlushFinalBlock()
- Dim plainBytes As Byte() = New Byte(ms.Length - 1) {}
- ms.Position = 0
- ms.Read(plainBytes, 0, CInt(ms.Length))
- decStream.Close()
- Return (Encoding.UTF8.GetString(plainBytes))
- End Function
Hier ist der Code des Speichervorgangs:
Quellcode
- Private Sub ButtonSaveData_Click(sender As Object, e As EventArgs) Handles ButtonSaveData.Click
- My.Settings.ColumnWidthDomain = ColumnDomain.Width
- My.Settings.ColumnWidthUsername = ColumnUsername.Width
- My.Settings.ColumnWidthPassword = ColumnPassword.Width
- My.Settings.ColumnWidthEMail = ColumnEMail.Width
- My.Settings.ColumnWidthToken = ColumnToken.Width
- My.Settings.Save()
- My.Settings.Reload()
- Dim myWriter As New IO.StreamWriter(testfile)
- For Each myItem As ListViewItem In ListView1.Items
- myWriter.WriteLine(lock = myItem.Text & "#" & myItem.SubItems(1).Text & "#" & myItem.SubItems(2).Text & "#" & myItem.SubItems(3).Text & "#" & myItem.SubItems(4).Text)
- lock = TripleDESEncryptMessage(lock, Password)
- Next
- myWriter.Close()
- My.Settings.LastTimeEditedValue = System.DateTime.Now
- My.Settings.Save()
- My.Settings.Reload()
- MsgBox("Your data has been successfully saved")
- End Sub
Ich hoffe ihr könnt mir helfen, vielen Dank schonmal!
Gruß,