だから、私はデビッド・ヘイデンが彼のブログ(http://davidhayden.com/blog/dave/archive/2004/02/16/157.aspx)に投稿したアプローチで、ソルトを作成し、ユーザーのパスワードを取得してユーザーのパスワードをハッシュします生のパスワードと生成されたソルト、およびSHA1を使用して値をハッシュします。
次に、ソルトとハッシュ化されたパスワードをデータベースに保存します。
Webサイトは現在負荷分散されているため、結果のハッシュ値が両方のサーバーで同じになるかどうか疑問に思いました。
DavidHaydenのブログに投稿されたコードのスニペットは次のとおりです。
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");