示例#1
0
        private void AddRandomData()
        {
            Random rnd = new Random();

            //ToDo File neu beschreiben
            for (int k = 0; k < 2; k++)
            {
                string[] term = new string[6];

                for (int i = 0; i < 6; i++)
                {
                    int len   = rnd.Next(8, 32);
                    int start = rnd.Next(CMyRandom.Chars.Length - len - 1);
                    term[i] = CMyRandom.Chars.Substring(start, len);
                }

                ListPw.Add(new CPwDat {
                    Title = "_" + term[0], WebAdr = term[1], User = term[2], PW = term[3], Opt1 = term[4], Opt2 = "_" + term[5]
                });
            }
        }
示例#2
0
        private void ButtonInputStore_Click(object sender, RoutedEventArgs e)
        {
            string titleUp = TextBoxTitelIn.Text.Trim().ToUpper();


            if (titleUp == "")
            {
                MessageBox.Show("Titel im Datensatz fehlt");
                return;
            }

            // Durchsuchen der Liste nach dem neuen Titel
            CPwDat dat = ListPw.Find(x => x.Title.ToUpper() == titleUp);

            if (dat != null)
            {
                MessageBoxResult result =
                    MessageBox.Show("Es gibt schon einen Datensatz mit dem Titel\n     " + dat.Title +
                                    "\nÜberschreiben", "Achtung", MessageBoxButton.YesNo, MessageBoxImage.Warning);

                if (result == MessageBoxResult.No)
                {
                    return;
                }

                ListPw.Remove(dat);
            }

            CPwDat newDat = new CPwDat {
                Title = TextBoxTitelIn.Text.Trim(), WebAdr = TextBoxWebAdrIn.Text.Trim(), User = TextBoxUserIn.Text.Trim(), PW = TextBoxPwIn.Text.Trim(), Opt1 = TextBoxOpt1In.Text.Trim(), Opt2 = TextBoxOpt2In.Text.Trim()
            };

            ListPw.Add(newDat);

            PwDatToListView(TextBoxFilter.Text);

            EncryptFile();

            WriteOutputFields(newDat);
        }
示例#3
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);
            }
        }
示例#4
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);
        }