我有一个带有用户名,散列密码及其盐的表,现在在我的应用程序中我想验证下面的散列密码的普通密码是我尝试但不生成相同的散列,请建议我该如何解决这个问题问题
byte[] bIn = Encoding.Unicode.GetBytes(Password);
byte[] bSalt = Convert.FromBase64String(SaltValue);
byte[] bAll = new byte[bSalt.Length + bIn.Length];
Buffer.BlockCopy(bSalt, 0, bAll, 0, bSalt.Length);
Buffer.BlockCopy(bIn, 0, bAll, bSalt.Length, bIn.Length);
HMACSHA256 s = new HMACSHA256();
return Convert.ToBase64String(s.ComputeHash(bAll));
答案 0 :(得分:2)
您应该创建一个方法来使用salt哈希密码。然后使用此方法加密初始密码。如果您重复使用此方法,之后将验证密码,它将始终匹配。
确保从帐户的数据库中检索到正确的盐。