private void SimpleTxtToListPw(string pathAndFile) { ListPw.Clear(); //AddRandomData(); string[] s = File.ReadAllLines(pathAndFile); //string[] b = s[0].Split(";"); foreach (string item in s) { string[] b = item.Split(";"); CPwDat pw = new CPwDat(); pw.Title = b[0]; pw.WebAdr = b[1]; pw.User = b[2]; pw.PW = b[3]; pw.Opt1 = b[4]; pw.Opt2 = b[5]; ListPw.Add(pw); } }
private bool DecryptFile() { bool ok = true; // --------------- Entschlüsseln ------------------------------- // Erstelle eine Instanz von AES und weise ihr einen Schlüssel und Initialisierungsvektor zu // Wichtig ist hier das Padding, welches wir unbedingt definieren müssen. Aes AESCrypto = Aes.Create(); AESCrypto.Padding = PaddingMode.Zeros; AESCrypto.Key = DoExtendKey((MyPasswordBox.Password + TextBoxUser.Text + CMyRandom.MoreKey).Substring(0, 32), 32); AESCrypto.IV = DoCreateBlocksize((TextBoxUser.Text + CMyRandom.MoreIV).Substring(0, 16), 16); try { // Die neue Datei hat den gleichen Namen, allerdings die Dateiendung .txt // Achtung: Die Originaldatei wird überschrieben, wenn diese sich im gleichen Pfad befindet! // string neueDatei = System.IO.Path.ChangeExtension(openFileDialog1.FileName, ".txt"); // Erstelle einen Inputstream, Outputstream und Cryptostream FileStream inputStream = new FileStream(PmPath + "\\" + "MyPW.txt", FileMode.Open); //FileStream outputStream = new FileStream(PmPath + "\\" + "Mp2.txt", FileMode.Create); CryptoStream cStream = new CryptoStream(inputStream, AESCrypto.CreateDecryptor(), CryptoStreamMode.Read); // Entschlüssele nun jedes Byte bis zum Dateiende int data; //while ((data = cStream.ReadByte()) != -1) // outputStream.WriteByte((byte)data); StringBuilder sb = new StringBuilder(); while ((data = cStream.ReadByte()) != -1) { sb.Append(((char)data).ToString()); } string[] s = sb.ToString().Split("\n"); ListPw.Clear(); foreach (string item in s) { string[] b = item.Split(";"); if (b.Length == 6) { CPwDat pw = new CPwDat(); pw.Title = b[0].Trim(); pw.WebAdr = b[1].Trim(); pw.User = b[2].Trim(); pw.PW = b[3].Trim(); pw.Opt1 = b[4].Trim(); pw.Opt2 = b[5].Trim(); ListPw.Add(pw); } else { if (ListPw.Count == 0) { MessageBox.Show("Passwort passt nicht\n\nPasswort oder Directory ändern\n\n" + "Um die Daten neu anzulegen, muss die Datei 'MyPW.txt' gelöscht werden\n" + "Der Zugang zur Datei ist durch Klicken auf 'Datensätze' möglich"); ButtonPath.Visibility = Visibility.Visible; TextBoxPath.Text = PmPath + "\\" + "MyPW.txt"; TextBoxPath.Visibility = Visibility.Visible; ButtonDataCount.Visibility = Visibility.Visible; ButtonChangeDirMain.Visibility = Visibility.Visible; TextBoxPath.Background = System.Windows.Media.Brushes.LightGreen; ImagePw.Visibility = Visibility.Visible; ok = false; break; } //else //{ // MessageBox.Show("Fehler bei Datensatz " + ListPw.Count, "", MessageBoxButton.OK, MessageBoxImage.Error); //} } } inputStream.Close(); cStream.Close(); } catch { MessageBox.Show("Ein Fehler ist aufgetreten!", "", MessageBoxButton.OK, MessageBoxImage.Error); } return(ok); }