HashPassword() public static method

Hash a password using the OpenBSD bcrypt scheme and a salt generated by .
public static HashPassword ( string input ) : string
input string The password to hash.
return string
Beispiel #1
0
        public async Task <User> RegisterAsync(string username, string password, string firstName, string lastName, string role)
        {
            var user = await _dataContext.Users.SingleOrDefaultAsync(u => u.Username == username);

            if (user != null)
            {
                throw new LogicException("Пользователь с указанным именем уже существует");
            }

            user = new User(username, BC.HashPassword(password), firstName, lastName, role);

            _dataContext.Users.Add(user);
            await _dataContext.SaveChangesAsync();

            GenerateToken(user);
            return(user.WithoutPassword());
        }
Beispiel #2
0
 private void MaterialRaisedButton2_Click(object sender, EventArgs e)
 {
     try
     {
         if (txtLogin.Text == "" || txtPass.Text == "" || txtName.Text == "" || txtF.Text == "" || txtMail.Text == "" || txtPass2.Text == "")
         {
             MaterialMessageBox.Show("Пожалуйста заполните все поля", "Упс... Что-то пошло не так", MessageBoxButtons.OK);
         }
         else if (txtPass.Text != txtPass2.Text)
         {
             MaterialMessageBox.Show("Пароль не совпадают", "Упс... Что-то пошло не так", MessageBoxButtons.OK);
         }
         else
         {
             using (SqlConnection sqlcon = new SqlConnection(connectionString))
             {
                 sqlcon.Open();
                 SqlCommand sqlCmd = new SqlCommand("SotrAdd", sqlcon);
                 sqlCmd.CommandType = CommandType.StoredProcedure;
                 sqlCmd.Parameters.AddWithValue("Id_sotr", 0);
                 sqlCmd.Parameters.AddWithValue("Sost_sotr", "");
                 sqlCmd.Parameters.AddWithValue("I_sotr", txtName.Text.Trim());
                 sqlCmd.Parameters.AddWithValue("F_sotr", txtF.Text.Trim());
                 sqlCmd.Parameters.AddWithValue("O_sotr", txtO.Text.Trim());
                 sqlCmd.Parameters.AddWithValue("Mail_sotr", txtMail.Text.Trim());
                 sqlCmd.Parameters.AddWithValue("Staj_sotr", txtStaj.Text.Trim());
                 sqlCmd.Parameters.AddWithValue("Login_sotr", txtLogin.Text.Trim());
                 string CPass = Bcrypt.HashPassword(txtPass.Text, "$2a$11$fhmmGItQBp5ncDeCSnDPG/");
                 sqlCmd.Parameters.AddWithValue("Password_sotr", CPass);
                 sqlCmd.ExecuteNonQuery();
                 sqlcon.Close();
                 MaterialMessageBox.Show("Регистрация прошла успешно", "Поздравляем", MessageBoxButtons.OK);
                 Clear();
                 Auth auth = new Auth();
                 this.Hide();
                 auth.Show();
             }
         }
     }
     catch (Exception ex)
     {
         MaterialMessageBox.Show(ex.Message, "Что-то пошло не так", MessageBoxButtons.OK);
     }
 }
        public AccountResponse Create(CreateRequest model)
        {
            if (_context.Accounts.Any(x => x.Email == model.Email))
            {
                throw new AppException($"Email '{model.Email}' is already registered");
            }

            var account = _mapper.Map <Account>(model);

            account.Created  = DateTime.UtcNow;
            account.Verified = DateTime.UtcNow;

            account.PasswordHash = BC.HashPassword(model.Password);

            _context.Accounts.Add(account);
            _context.SaveChanges();

            return(_mapper.Map <AccountResponse>(account));
        }
        public void ResetPassword(ResetPasswordRequest model)
        {
            var account = _context.Accounts.SingleOrDefault(x =>
                                                            x.ResetToken == model.Token &&
                                                            x.ResetTokenExpires > DateTime.UtcNow);

            if (account == null)
            {
                throw new AppException("Invalid token");
            }

            account.PasswordHash      = BC.HashPassword(model.Password);
            account.PasswordReset     = DateTime.UtcNow;
            account.ResetToken        = null;
            account.ResetTokenExpires = null;

            _context.Accounts.Update(account);
            _context.SaveChanges();
        }
Beispiel #5
0
        private void btnLogin_Click(object sender, EventArgs e)
        {
            SqlConnection  sqlcon = new SqlConnection(@"Data Source=MAHNO;Initial Catalog=PlanBadmin;" + "Integrated Security=true;");
            string         CPass  = Bcrypt.HashPassword(txtPassword.Text, "$2a$11$fhmmGItQBp5ncDeCSnDPG/");
            string         query  = "Select * from Admin Where Login ='******' and Password = '******'";
            SqlDataAdapter sda    = new SqlDataAdapter(query, sqlcon);
            DataTable      dtbl   = new DataTable();

            sda.Fill(dtbl);
            if (dtbl.Rows.Count == 1)
            {
                Main main = new Main();
                this.Hide();
                main.Show();
            }
            else
            {
                MessageBox.Show("Перепроверьте введеный вами логин и пароль");
            }
        }
        public AccountResponse Update(int id, UpdateRequest model)
        {
            var account = getAccount(id);

            if (account.Email != model.Email && _context.Accounts.Any(x => x.Email == model.Email))
            {
                throw new AppException($"Email '{model.Email}' is already taken");
            }

            if (!string.IsNullOrEmpty(model.Password))
            {
                account.PasswordHash = BC.HashPassword(model.Password);
            }
            _mapper.Map(model, account);
            account.Updated = DateTime.UtcNow;
            _context.Accounts.Update(account);
            _context.SaveChanges();

            return(_mapper.Map <AccountResponse>(account));
        }
Beispiel #7
0
    public async Task <Response <string> > ResetPasswordAsync(ResetPasswordRequest request)
    {
        var user = await _userRepository.FindAsync(x =>
                                                   x.ResetToken == request.Token &&
                                                   x.ResetTokenExpires > DateTime.UtcNow);

        if (user == null)
        {
            throw new ApiException("Invalid token");
        }

        // update password and remove reset token
        user.Password          = BC.HashPassword(request.Password);
        user.PasswordReset     = DateTime.UtcNow;
        user.ResetToken        = null;
        user.ResetTokenExpires = null;

        await _userRepository.UpdateAsync(user);

        return(new Response <string>(user.Email, "Password Resetted."));
    }
        public void Register(RegisterRequest model, string origin)
        {
            if (_context.Accounts.Any(x => x.Email == model.Email))
            {
                sendAlreadyRegisteredEmail(model.Email, origin);
                return;
            }

            var account = _mapper.Map <Account>(model);

            var isFirstAccount = _context.Accounts.Count() == 0;

            account.Created           = DateTime.UtcNow;
            account.VerificationToken = randomTokenString();

            account.PasswordHash = BC.HashPassword(model.Password);

            _context.Accounts.Add(account);
            _context.SaveChanges();

            sendVerificationEmail(account, origin);
        }
Beispiel #9
0
        //Обработка кнопки "Войти"
        private void BtnLogin_Click_1(object sender, EventArgs e)
        {
            try
            {
                LogUser = txtLogin.Text.Trim();
                sqlcon.Open();
                string         CPass       = Bcrypt.HashPassword(txtPassword.Text, "$2a$11$fhmmGItQBp5ncDeCSnDPG/");
                string         query       = "SELECT * FROM Sotr WHERE Login_sotr = '" + txtLogin.Text.Trim() + "' and Password_sotr = '" + CPass.Remove(50, 10) + "'";
                SqlDataAdapter sda         = new SqlDataAdapter(query, sqlcon);
                DbConnector    dbConnector = new DbConnector();
                SqlCommand     sqlCommand  = new SqlCommand("SELECT Id_sotr FROM dbo.Sotr where Login_sotr = 'zzzador4'", sqlcon);

                DataTable dtbl = new DataTable();
                sda.Fill(dtbl);
                if (dtbl.Rows.Count == 1)
                {
                    Program.IsAdmin = txtLogin.Text.Trim();
                    Main main = new Main();
                    Program.UserId = (int)sqlCommand.ExecuteScalar();
                    this.Hide();
                    main.Show();
                }
                else
                {
                    MaterialMessageBox.Show("Перепроверьте введенный вами логин и пароль", "Упс... Что-то пошло не так", MessageBoxButtons.OK);
                }
            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                sqlcon.Close();
            }
        }