2011-09-21 28 views
1

データベースにパスワードを格納するためのFIPS検証ハッシュアルゴリズムを探しています。 次のコードを使用しましたが、まだエラーが表示されますパスワードをデータベースに保存するためのFIPS検証済みアルゴリズムですか?

この実装は、WindowsプラットフォームのFIPS検証済み暗号化アルゴリズムの一部ではありません。

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(); 
+0

正確にそのエラーメッセージが表示されますか? – n8wrl

+0

@ n8wrlこの例外は、EnableFIPSセキュリティポリシーが適用されている場合、SHA1Managedなどの一部のセキュリティクラスによってスローされます。 – vcsjones

+0

Webアプリケーションを実行しようとするとエラーが表示されました。 – Macnique

答えて

2

system.webセクションの下にweb.configファイルに次の行を追加し

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

2

プレーンSHA-1は、パスワードを格納するために使用すべきではありません。 PBKDF2は良い選択です。あなたはRfc2898DeriveBytesクラスでそれを使用することができます。 https://security.stackexchange.com/questions/2131/reference-implementation-of-c-password-hashing-and-verification/2136#2136

基本的なハッシュ関数をSHA-256に変更する必要がある場合があります。 SHA-1はNISTの承認を受けていません。

+2

SHA1 is decryptionKey = "AutoGenerate、IsolateApps" validation = "3DES" decryption = "3DES" /> NIST(FIPS Pub 180の一部)で受け入れられる - MicrosoftがSHA256を使用するために使用したHMACアルゴリズムの制御権をマイクロソフトが与えてくれればいいだろう。 MicrosoftがCSPに実装したのは[140-2承認済み](http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/1401val2004.htm#405)です。 – vcsjones

+0

これは、system.webセクションの Macnique

0

私はデータベースにパスワードを格納するハッシュアルゴリズム検証FIPSを探しています私の問題解決しました。

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

管理対象クラスを使用しないでください。FIPSは検証されていません。代わりにSHA256CryptoServiceProviderと友だちを使用してください。

関連する問題