对于我的应用程序,我想存储密码并显然加密它们。从我可以收集到的东西,我需要用盐加密一种方式?我的计划是在创建帐户后将密码保存到数据库。这样做我创建一个盐,然后创建一个哈希。当他们进入登录时,然后取出存储的盐并获取输入的值并循环遍历每个凭据,使用存储的盐重新加密它,看看它是否与存储的哈希相匹配?我这样做是否正确,因为每次运行加密都与存储的加密不同。以下是我的盐和加密方法。非常感谢所有帮助。
public string CreateSalt(string UserName)
{
Rfc2898DeriveBytes hasher = new Rfc2898DeriveBytes(UserName, System.Text.Encoding.Default.GetBytes("seaaSalt"), 10000);
return Convert.ToBase64String(hasher.GetBytes(25));
}
public string HashPassword(string Salt, string Password)
{
Rfc2898DeriveBytes Hasher = new Rfc2898DeriveBytes(Password,
System.Text.Encoding.Default.GetBytes(Salt), 10000);
return Convert.ToBase64String(Hasher.GetBytes(25));
}