作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我采用了 David Hayden 在他的博客 (http://davidhayden.com/blog/dave/archive/2004/02/16/157.aspx) 上发布的方法来创建一个 salt 并对用户密码进行哈希处理获取用户的原始密码和生成的盐,并使用 SHA1 对值进行哈希处理。
然后我将盐和散列密码存储在数据库中。
该网站目前是负载平衡的,所以我想知道两台服务器的哈希值是否相同。
这是 David Hayden 博客上发布的代码片段:
private 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);
}
private static string CreatePasswordHash(string pwd, string salt)
{
string saltAndPwd = String.Concat(pwd, salt);
string hashedPwd =
FormsAuthentication.HashPasswordForStoringInConfigFile(
saltAndPwd, "sha1");
return hashedPwd;
}
我问的原因是这段代码使用了代码片段:
FormsAuthentication.HashPasswordForStoringInConfigFile(
saltAndPwd, "sha1");
最佳答案
我认为您在这里提出的关键问题是 SHA1 算法是否与运行的服务器相同。在这种情况下,答案是肯定的。
大概您将生成的盐存储在所有服务器都可以访问的地方,连同密码散列?因此,用于生成盐的方法不需要在服务器之间保持一致。
关于c# - ASP.NET:多个服务器上的 SHA1 + Salt 密码散列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4937173/
我是一名优秀的程序员,十分优秀!