Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
        }