Пример #1
0
        private void btnKey_Click(object sender, EventArgs e)
        {
            /*  1) Считывание пароля из файла.
             *  2) Шифрование принятого пароля "data = txtPas.Text".
             *  3) Проверка зашифрованного пароля и пароля в файле(3 попытки).
             *  Если Введёный == Сохранённый пароли сопадают:
             *  4) Генерация НОВОГО ключа.
             *  5) Шифрование пароля.
             *  6) Запись в файл.
             *  7) Передача ключа в конструктор формы "LabelKeyForm1".
             *  8) Открытие формы "LabelKeyForm1".
             *  Иначе
             *  4) Сообщение об ошибке(еще 2 попытки).
             *  5) Открытие формы "LogForm" для ввода пароля.
             */

            string EncodePas;      // Новый сгенерированный пароль.
            string EnterPas;       // Введёный (Зашифрованный) пароль.
            String UserData;       // Сохранённый в файле (Зашифрованный) пароль.

            if (txtKey.Text == "") // Если поле для ввода клча пустое.
            {
                MessageBox.Show("Поле ключа не может быть пустым!");
            }

            // (1).
            UserData = b.ReadFromFile();

            // Если длинна введенного пароля больше чем зашифрованного.
            // Такая проверка нужна потому что алгоритм не будет работать,
            // и если не обработать это условие ошибка вылезет в функции "Encode"(выход за границы массива).
            if ((data.Length > UserData.Length) || (data.Length < UserData.Length))
            {
                // (4).
                MessageBox.Show(String.Format("Неправильный пароль или ключ!\nОсталось попыток: {0}", Func.PopytkaNum));
                Func.PopytkaNum--;

                if (Func.PopytkaNum < 0)
                {
                    MessageBox.Show("Попытки закончились!");
                    Application.Exit();
                }

                LogForm f = new LogForm();

                // (5).
                this.Hide();
                f.ShowDialog();
                this.Close();
            }

            else
            {
                // (2).
                EnterPas = b.Encode(data, txtKey.Text);

                // (3).
                if (UserData == EnterPas) // Проверка Введённого и  Сохранённого в файле пароля.
                {
                    // (4).
                    Func.Key = b.GenKey();

                    // (5).
                    EncodePas = b.Encode(data, Func.Key);

                    // (6).
                    b.WriteInFile(EncodePas);

                    // (7).
                    LabelKeyForm1 f = new LabelKeyForm1();

                    // (8).
                    this.Hide();
                    f.ShowDialog();
                    this.Close();
                }
                else
                {
                    // (4).
                    MessageBox.Show(String.Format("Неправильный пароль или ключ!\nОсталось попыток: {0}", Func.PopytkaNum));
                    Func.PopytkaNum--;

                    if (Func.PopytkaNum < 0)
                    {
                        MessageBox.Show("Попытки закончились!");
                        Application.Exit();
                    }

                    LogForm f = new LogForm();

                    // (5).
                    this.Hide();
                    f.ShowDialog();
                    this.Close();
                }
            }
        }
Пример #2
0
        private void btnKey_Click(object sender, EventArgs e)
        {
            /*
             *  2) Шифрование принятого пароля "data = txtPas.Text".
             *  3) Проверка зашифрованного пароля и пароляна флешке(3 попытки).
             *  Если Введёный == Сохранённый пароли сопадают:
             *  4) Генерация НОВОГО ключа.
             *  5) Шифрование пароля.
             *  6) Запись в файл.
             *  7) Запись на флешку.
             *  8) Передача ключа в конструктор формы "LabelKeyForm1".
             *  9) Открытие формы "LabelKeyForm1".
             *  Иначе
             *  4) Сообщение об ошибке(еще 2 попытки).
             *  5) Открытие формы "LogForm" для ввода пароля.
             */

            string EncodePas;      // Новый сгенерированный пароль.
            string EnterPas;       // Введёный (Зашифрованный) пароль.

            if (txtKey.Text == "") // Если поле для ввода клча пустое.
            {
                MessageBox.Show("Поле ключа не может быть пустым!");
            }

            else
            {
                // (2).
                EnterPas = b.Encode(Func.Pas, txtKey.Text);

                // (3).
                if (txtPas.Text == EnterPas) // Проверка Введённого и  Сохранённого пароля.
                {
                    // (4).
                    Func.Key = b.GenKey();

                    // (5).
                    EncodePas = b.Encode(Func.Pas, Func.Key);

                    // (6).
                    b.WriteInFile(EncodePas);

                    SafeFileHandle handle = CreateFile(
                        lpFileName: @"\\.\" + Func.FlashDrive,
                        dwDesiredAccess: FileAccess.Read,
                        dwShareMode: FileShare.ReadWrite,
                        lpSecurityAttributes: IntPtr.Zero,
                        dwCreationDisposition: System.IO.FileMode.OpenOrCreate,
                        dwFlagsAndAttributes: FileAttributes.Normal,
                        hTemplateFile: IntPtr.Zero);

                    using (FileStream disk = new FileStream(handle, FileAccess.Read))
                    {
                        mbrData = new byte[512];
                        disk.Read(mbrData, 0, 512);
                    }

                    handle = CreateFile(
                        lpFileName: @"\\.\" + Func.FlashDrive,
                        dwDesiredAccess: FileAccess.Write,
                        dwShareMode: FileShare.ReadWrite,
                        lpSecurityAttributes: IntPtr.Zero,
                        dwCreationDisposition: System.IO.FileMode.OpenOrCreate,
                        dwFlagsAndAttributes: FileAttributes.Normal,
                        hTemplateFile: IntPtr.Zero);

                    using (FileStream disk = new FileStream(handle, FileAccess.Write))
                    {
                        for (int i = 0; i < EncodePas.Length; i++)
                        {
                            mbrData[384 + i] = (byte)EncodePas[i];
                        }

                        disk.Write(mbrData, 0, 512);
                    }

                    // (7).
                    LabelKeyForm1 f = new LabelKeyForm1();

                    // (8).
                    this.Hide();
                    f.ShowDialog();
                    this.Close();
                }
                else
                {
                    // (4).
                    MessageBox.Show(String.Format("Неправильный пароль или ключ!\nОсталось попыток: {0}", Func.PopytkaNum));
                    Func.PopytkaNum--;

                    if (Func.PopytkaNum < 0)
                    {
                        MessageBox.Show("Попытки закончились!");
                        Application.Exit();
                    }

                    LogForm f = new LogForm();

                    // (5).
                    this.Hide();
                    f.ShowDialog();
                    this.Close();
                }
            }
        }
Пример #3
0
        private void btnKey_Click(object sender, EventArgs e)
        {
            string EncodePas;
            string EnterPas;

            if (txtKey.Text == "")
            {
                MessageBox.Show("Поле ключа не может быть пустым!");
            }
            else
            {
                EnterPas = b.Encode(Func.Pas, txtKey.Text);

                if (txtPas.Text == EnterPas)
                {
                    Func.Key = b.GenKey();

                    EncodePas = b.Encode(Func.Pas, Func.Key);

                    b.WriteInFile(EncodePas);

                    SafeFileHandle handle = CreateFile(
                        lpFileName: @"\\.\" + Func.FlashDrive,
                        dwDesiredAccess: FileAccess.Read,
                        dwShareMode: FileShare.ReadWrite,
                        lpSecurityAttributes: IntPtr.Zero,
                        dwCreationDisposition: System.IO.FileMode.OpenOrCreate,
                        dwFlagsAndAttributes: FileAttributes.Normal,
                        hTemplateFile: IntPtr.Zero);

                    using (FileStream disk = new FileStream(handle, FileAccess.Read))
                    {
                        mbrData = new byte[512];
                        disk.Read(mbrData, 0, 512);
                    }

                    handle = CreateFile(
                        lpFileName: @"\\.\" + Func.FlashDrive,
                        dwDesiredAccess: FileAccess.Write,
                        dwShareMode: FileShare.ReadWrite,
                        lpSecurityAttributes: IntPtr.Zero,
                        dwCreationDisposition: System.IO.FileMode.OpenOrCreate,
                        dwFlagsAndAttributes: FileAttributes.Normal,
                        hTemplateFile: IntPtr.Zero);

                    using (FileStream disk = new FileStream(handle, FileAccess.Write))
                    {
                        for (int i = 0; i < EncodePas.Length; i++)
                        {
                            mbrData[384 + i] = (byte)EncodePas[i];
                        }

                        disk.Write(mbrData, 0, 512);
                    }

                    LabelKeyForm1 f = new LabelKeyForm1();

                    this.Hide();
                    f.ShowDialog();
                    this.Close();
                }
                else
                {
                    MessageBox.Show(String.Format("Неправильный пароль или ключ!\nОсталось попыток: {0}", Func.PopytkaNum));
                    Func.PopytkaNum--;

                    if (Func.PopytkaNum < 0)
                    {
                        MessageBox.Show("Попытки закончились!");
                        Application.Exit();
                    }

                    LogForm f = new LogForm();

                    this.Hide();
                    f.ShowDialog();
                    this.Close();
                }
            }
        }
Пример #4
0
        private void btnKey_Click(object sender, EventArgs e)
        {
            string Key, EncodePas; // Новый ключ сгенерированный пароль к нему.
            string EnterPas;       // Введёный (Зашифрованный) пароль.
            String UserData;       // Сохранённый в файле (Зашифрованный) пароль.

            // 1) Считывание пароля из файла.
            UserData = b.ReadFromFile();

            // Если длинна введенного пароля больше для зашифрованного.
            //Такая проверка нужна потому что алгоритм не будет работать.
            if (data.Length > UserData.Length)
            {
                // 4) Сообщение об ошибке(еще 2 попытки).
                MessageBox.Show(String.Format("Неправильный пароль или ключ!\nОсталось попыток: {0}", PopytkaNum));
                PopytkaNum--;

                LogForm f = new LogForm();

                // 5) Открытие формы "LogForm" для ввода пароля.
                this.Hide();
                f.ShowDialog();
                this.Close();

                if (PopytkaNum < 0)
                {
                    MessageBox.Show("Попытки закончились!");
                    this.Close();
                }
            }

            // 2) Шифрование принятого пароля "data = txtPas.Text".
            EnterPas = b.Encode(data, txtKey.Text);

            // 3) Проверка зашифрованного пароля и пароля в файле(3 попытки).
            if (UserData == EnterPas) // Проверка Введённого и  Сохранённого в файле пароля.
            {
                // 4) Генерация НОВОГО ключа.
                Key = b.GenKey();

                // 5) Шифрование пароля.
                EncodePas = b.Encode(data, Key);

                // 6) Запись в файл.
                b.WriteInFile(EncodePas);

                // 7) Передача ключа в конструктор формы "LabelKeyForm1".
                LabelKeyForm1 f = new LabelKeyForm1(Key);

                // 8) Открытие формы "LabelKeyForm1".
                this.Hide();
                f.ShowDialog();
                this.Close();
            }
            else
            {
                // 4) Сообщение об ошибке(еще 2 попытки).
                MessageBox.Show(String.Format("Неправильный пароль или ключ!\nОсталось попыток: {0}", PopytkaNum));
                PopytkaNum--;

                LogForm f = new LogForm();

                // 5) Открытие формы "LogForm" для ввода пароля.
                this.Hide();
                f.ShowDialog();
                this.Close();

                if (PopytkaNum < 0)
                {
                    MessageBox.Show("Попытки закончились!");
                    this.Close();
                }
            }
        }