ACP*_*ACP 0 passwords asp.net-mvc hash comparison salt
我在用户注册期间存储了密码的salt和hash值...但是在登录期间我然后对用户给出的密码进行加密和散列,会发生什么是新的盐并生成新的哈希....
string password = collection["Password"];
reg.PasswordSalt = CreateSalt(6);
reg.PasswordHash = CreatePasswordHash(password, reg.PasswordSalt);
Run Code Online (Sandbox Code Playgroud)
这些陈述都在注册和登录....
注册期间的盐和哈希是eVSJE84W和18DE22FED8C378DB7716B0E4B6C0BA54167315A2
在登录期间它是4YDIeARH和12E3C1F4F4CFE04EA973D7C65A09A78E2D80AAC7.....任何建议....
public static string CreateSalt(int size)
{
//Generate a cryptographic random number.
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] buff = new byte[size];
rng.GetBytes(buff);
// Return a Base64 string representation of the random number.
return Convert.ToBase64String(buff);
}
public static string CreatePasswordHash(string pwd, string salt)
{
string saltAndPwd = String.Concat(pwd, salt);
string hashedPwd =
FormsAuthentication.HashPasswordForStoringInConfigFile(
saltAndPwd, "sha1");
return hashedPwd;
}
Run Code Online (Sandbox Code Playgroud)
现在,您在注册和登录时生成不同的盐.您需要使用相同的盐进行散列,否则您将获得不同的哈希值.也就是说,您需要将salt与密码一起存储到数据库中,并在用户稍后尝试登录时重新使用它进行哈希处理.
脚步:
| 归档时间: |
|
| 查看次数: |
2052 次 |
| 最近记录: |