1

I am looking for a FIPS validated hash algorithm to store passwords in the database. I did use the following code but I still get the error

This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.

SHA1CryptoServiceProvider Testsha1 = new SHA1CryptoServiceProvider();
byte[] hashedBytes;
UTF8Encoding encoder = new UTF8Encoding();
hashed = Testsha1.ComputeHash(encoder.GetBytes(strPassword));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hashed.Length; i++)
{
    sbuilder.Append(hashed[i].ToString("x2"));
}
string Password = sb.ToString();
4

3 に答える 3

3

プレーンなSHA-1を使用してパスワードを保存しないでください。PBKDF2は良い選択です。Rfc2898DeriveBytes.netでは、クラスで使用できます。https://security.stackexchange.com/questions/2131/reference-implementation-of-c-password-hashing-and-verification/2136#2136を参照してください

基になるハッシュ関数をSHA-256に変更する必要がある場合があります。私が覚えていることから、SHA-1はNIST承認されていません。

于 2011-09-21T19:17:27.177 に答える
2

system.webセクションのweb.configに次の行を追加します

<machineKey validationKey="AutoGenerate,IsolateApps" ecryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/>

私の問題を解決しました

于 2011-09-27T17:50:29.363 に答える
0

パスワードをデータベースに保存するための FIPS 検証済みハッシュ アルゴリズムを探しています。

SHA-2 ファミリーのハッシュの 1 つを使用します。たとえば、SHA256 です。

マネージド クラスは使用しないでください。これらは FIPS で検証されていません。代わりに、SHA256CryptoServiceProviderand friends を使用します。

于 2014-02-15T16:50:51.760 に答える