0

現在、 SQLServer2008データベースに格納されるデータの暗号化が必要な.NETアプリケーションに取り組んでいます。

AES暗号化を使用しました。キーは、 PasswordDeriveBytesによってSHA1を使用してハッシュされたパスワードとソルトの組み合わせを使用して生成されます。ここで、ハッシュアルゴリズムをSHA256に変更する必要があります。私が知る限り、PasswordDeriveBytesはハッシュパラメーターとしてMD5とSHA1のみを受け入れます。PasswordDeriveBytesを使用してSHA256を実装できるかどうかを知りたいだけです。

そうでない場合、同じ目的のための.NETの代替の組み込みクラスは何ですか?手動で実装できますか?手動で実装することが唯一の解決策である場合、私はそれを行うのに助けが必要かもしれません。前もって感謝します。

4

1 に答える 1

0

代替手段はRfc2898DeriveBytesです。特に20バイトを超える出力が必要な場合は、はるかに安全に使用できます。もちろん、PasswordDeriveBytesとは互換性がありません。PasswordDeriveBytesは、20バイトを超える値に対して単純に壊れます。残念ながら、PBKDF2には欠点もあります。それは、ハッシュサイズを超える任意の値に対してすべての反復を繰り返すことです。その場合は、KBKDFとペアリングすることをお勧めします。

したがって、追加のライブラリに戻らなければ、これを行うことはできないようです。それは弾力がある城がそれを来るかもしれないところです。これには、HMACで簡単に初期化できるPBKDF2機能があり、HMACは特定のハッシュアルゴリズムで初期化できます。このstackoverflowの質問でPBKDF2の使用を参照してください。ダイジェストをに置き換えるだけで、すぐに使用できSha256Digestます。

注:暗号化では単純なことは何もありません。これを実現するには弾力のあるソースが必要なようです。

于 2013-02-22T09:15:54.690 に答える