【发布时间】:2019-06-16 19:31:02
【问题描述】:
我正在尝试保护我的 c# 应用程序。我知道我们必须在数据库中存储密码哈希和盐。所以我的问题是:如果我使用随机盐,我如何比较该密码是否正确?(随机盐每次都会给出随机值)。 我也有下面的代码
public static string HashPassword(string p, string s)
{
var combinedPassword = String.Concat(p, s);
var sha256 = new SHA512Managed();
var bytes = UTF8Encoding.UTF8.GetBytes(combinedPassword);
var hash = sha256.ComputeHash(bytes);
return Convert.ToBase64String(hash);
}
public static String GetRandomSalt()
{
var random = new RNGCryptoServiceProvider();
var salt = new Byte[1024];
random.GetBytes(salt);
return Convert.ToBase64String(salt);
}
总的来说,我愿意接受其他建议。
【问题讨论】:
标签: c# database hash passwords salt