ASP.NET:多个服务器上的SHA1 + Salt密码哈希

所以,我是大卫·海登在他的博客(http://davidhayden.com/blog/dave/archive/2004/02/16/157.aspx)上发布的方法来创建一个盐并通过取用户的密码来哈希用户的密码原始密码和生成的salt并使用SHA1来散列值。 然后我将salt和哈希密码存储在数据库中。 该网站目前是负载均衡的,所以我想知道两个服务器的结果哈希值是否相同。 以下是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算法是否与运行它的服务器相同。在这种情况下答案是肯定的。 大概你将生成的盐存储在所有服务器都可以访问它的地方,以及密码哈希?因此,用于生成salt的方法不需要在服务器之间保持一致。     
此方法仅使用传递给它的参数。 别担心;它会工作。     
“要解决此问题,在Web场中的所有计算机上,validationKey和decryptionKey值必须相同。” http://msdn.microsoft.com/en-us/library/ff647070.aspx#pagexplained0002_webfarmscenarios     

要回复问题请先登录注册