public HashedPassword HashPassword(string password) { byte[] salt = this.GenerateSalt(); var hash = ComputeHash(password, salt); HashedPassword hashedPassword = new HashedPassword(salt, Convert.ToBase64String(hash)); return(hashedPassword); }
public bool IsValid(string UserPassword, HashedPassword DBPass, int iterations = HasingIterationsCount, int hashByteSize = HashByteSize) { var userHash = ComputeHash(UserPassword, DBPass.Salt, iterations); if (Convert.ToBase64String(userHash) == DBPass.Hash) { return(true); } return(false); }
private void Signup_Click(object sender, EventArgs e) { HashedPassword hashedUserPassword = pm.HashPassword(textBoxPassword.Text); //I use a local file as a "datebase" and use the different lines to store the user string[] lines = { textBoxUsername.Text, hashedUserPassword.Hash, Convert.ToBase64String(hashedUserPassword.Salt) }; using (StreamWriter outputFile = new StreamWriter("User.txt")) { foreach (string line in lines) { outputFile.WriteLine(line); } } }
private void Login_Click(object sender, EventArgs e) { var userFile = File.ReadAllLines("User.txt"); var userDetails = new List <string>(userFile); HashedPassword ValidateUserPassword = new HashedPassword(Convert.FromBase64String(userDetails[2]), userDetails[1]); if (pm.IsValid(textBoxPassword.Text, ValidateUserPassword)) { MessageBox.Show("Status", "Login is correct"); } else { MessageBox.Show("Status", "Login is wrong"); } }