適切にハッシュ化されたパスワードを持たない既存のアカウントに対して、Web アプリケーションのユーザー名とログインをすばやく生成するためのクイック コンソール アプリを作成しました。私の Web アプリケーションでは、次のように FormsAuthentication を使用しています。
string hashedPwd = FormsAuthentication.HashPasswordForStoringInConfigFile(saltAndPassword, "SHA1");
コンソール アプリで FormsAuthentication を使用しようとしましたが、FormsAuthentication もインポートも解決できません。アセンブリが見つからないかどうかを尋ねる警告が表示されます。以下を使用して、前と同じ結果を得ようとしました。
SHA1 sha1 = new SHA1CryptoServiceProvider();
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
byte[] bytesHashedPwd = sha1.ComputeHash(encoding.GetBytes(saltAndPwd));
string tmpString = encoding.GetString(byteshashedPwd);
string hashedPwd = String.Concat(str, salt);
return hashedPwd;
これらの 2 つの方法では、異なる結果が得られます。FormsAuthentication と同じ結果を得る必要があります。私はセキュリティの専門家ではありませんが、背景がわずかしかなく、文字セットの知識はさらに劣っています。どんな助けにも感謝します。