Esempio n. 1
0
        public void BDGenerateKey(string username)
        {
            DialogResult dialogResult1 = MessageBox.Show("При генерации нового ключа необходимо сменить пароль. Все документы будут удалены.\nВы уверены, что хотите сгенерировать новый ключ?", "Генерация ключа", MessageBoxButtons.YesNo);

            if (dialogResult1 == DialogResult.No)
            {
                return;
            }

            Crypt  crypt = new Crypt();
            string key   = crypt.GenerateKey();

            DB db = new DB();

            SQLiteCommand command = new SQLiteCommand("SELECT password FROM users WHERE login = @uL", db.getConnection());

            command.Parameters.AddWithValue("@uL", username).Size = 50;

            SQLiteCommand command1 = new SQLiteCommand($"UPDATE users SET cryptokey=@uK WHERE login = @uL", db.getConnection());

            command1.Parameters.AddWithValue("@uK", key).Size      = crypt.keyLength;
            command1.Parameters.AddWithValue("@uL", username).Size = 50;

            SQLiteCommand command2 = new SQLiteCommand($"DELETE FROM {username}", db.getConnection());

            db.openConnection();

            string result = command.ExecuteScalar().ToString();

            command2.ExecuteNonQuery();

            if (command1.ExecuteNonQuery() == 1)
            {
                MessageBox.Show($"Новый ключ для пользователя {username} успешно сгенерирован");
            }

            else
            {
                MessageBox.Show("Произошла ошибка при генерации ключа");
            }

            db.closeConnection();

            PassChangeNoConfim passChangeNoConfim = new PassChangeNoConfim();

            passChangeNoConfim.username = username;

            DialogResult dr = new DialogResult();

            db.openConnection();

            while (dr != DialogResult.OK || command.ExecuteScalar().ToString() == result)
            {
                dr = passChangeNoConfim.ShowDialog();
            }

            db.closeConnection();
        }
Esempio n. 2
0
        private void bAdd_Click(object sender, EventArgs e)
        {
            string login    = tbLogin.Text;
            string password = tbPassword.Text;
            {
                if (login == "" || login == "Логин")
                {
                    MessageBox.Show("Введите логин");
                    return;
                }

                if (password == "" || password == "Пароль")
                {
                    MessageBox.Show("Введите пароль");
                    return;
                }

                if (isUserExists())
                {
                    return;
                }

                DB db = new DB();

                SQLiteCommand command = new SQLiteCommand("INSERT INTO users(login, password, cryptokey) VALUES(@login, @password, @cryptokey)", db.getConnection());

                //для шифрования пароля
                Crypt  crypt = new Crypt();
                string key   = crypt.GenerateKey();
                string hash  = crypt.GetHash(password);

                command.Parameters.AddWithValue("@login", login).Size = 50;
                command.Parameters.AddWithValue("@password", crypt.CryptStr(hash, key)).Size = 50;
                command.Parameters.AddWithValue("@cryptokey", key).Size = crypt.keyLength;

                SQLiteCommand command2 = new SQLiteCommand($"CREATE TABLE {login} (docname nvarchar(50) NOT NULL, doc ntext NOT NULL);", db.getConnection());

                db.openConnection();

                command2.ExecuteNonQuery();

                if (command.ExecuteNonQuery() == 1)
                {
                    MessageBox.Show("Аккаунт успешно создан");
                }
                else
                {
                    MessageBox.Show("Произошла ошибка");
                }

                db.closeConnection();

                this.Hide();
            }
        }
Esempio n. 3
0
        private protected void CreateAdminIfNotExit()
        {
            DB db = new DB();

            SQLiteCommand command = new SQLiteCommand($"SELECT admin FROM users", db.getConnection());

            db.openConnection();

            try
            {
                command.ExecuteNonQuery();
            }
            catch
            {
                SQLiteCommand command1 = new SQLiteCommand("INSERT INTO users(login, password, cryptokey) VALUES(@login, @password, @cryptokey)", db.getConnection());

                //для генерации ключа
                Crypt  crypt = new Crypt();
                string key   = crypt.GenerateKey();

                command1.Parameters.AddWithValue("@login", "admin").Size    = 50;
                command1.Parameters.AddWithValue("@password", "admin").Size = 50;
                command1.Parameters.AddWithValue("@cryptokey", key).Size    = crypt.keyLength;

                db.openConnection();

                try
                {
                    command1.ExecuteNonQuery();
                }
                catch
                {
                    //MessageBox.Show("Произошла ошибка");
                }
            }
            db.closeConnection();
        }
Esempio n. 4
0
        private void bRegister_Click(object sender, EventArgs e)
        {
            DB db = new DB();

            string login    = tbLogin.Text;
            string password = tbPassword.Text;

            if (login == "")
            {
                MessageBox.Show("Введите логин");
                return;
            }

            if (password == "")
            {
                MessageBox.Show("Введите пароль");
                return;
            }

            if (isUserExists())
            {
                MessageBox.Show("Пользователь с таким логином уже существует, введите другой.");
                return;
            }

            SQLiteCommand command = new SQLiteCommand("INSERT INTO users(login, password, cryptokey) VALUES(@login, @password, @cryptokey)", db.getConnection());

            //для шифрования пароля
            Crypt  crypt = new Crypt();
            string key   = crypt.GenerateKey();
            string hash  = crypt.GetHash(password);

            command.Parameters.AddWithValue("@login", login).Size = 50;
            command.Parameters.AddWithValue("@password", crypt.CryptStr(hash, key)).Size = 50;
            command.Parameters.AddWithValue("@cryptokey", key).Size = crypt.keyLength;

            SQLiteCommand command2 = new SQLiteCommand($"CREATE TABLE {login} (docname nvarchar(50) NOT NULL, doc ntext NOT NULL);", db.getConnection());

            db.openConnection();

            if (command.ExecuteNonQuery() == 1)
            {
                command2.ExecuteNonQuery();
                MessageBox.Show("Аккаунт успешно создан");
            }
            else
            {
                MessageBox.Show("Произошла ошибка");
            }

            db.closeConnection();

            this.Hide();

            if (login == "admin")
            {
                Admin admin = new Admin();
                admin.Show();
                return;
            }

            TextEncrypter textEncrypter = new TextEncrypter();

            textEncrypter.username = login;
            if (login != "admin")
            {
                textEncrypter.admin = false;
            }

            textEncrypter.Show();
        }