3

SaltEnabledを設定すると、Microsoft Enterprise LibraryのHashProviderでソルトがどのように生成されますか?

新しいマシンにランダムですか?マジックナンバーですか?

(私はソルトとは何かを知っています。問題は、エンタープライズライブラリHashProviderのソルトの実際の値は何ですか)

4

4 に答える 4

4

編集:

実装例については、Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.HashAlgorithmProvider を参照してください。ハッシュの手順は次のとおりです。

  1. SaltEnabled の場合、RNGCryptoServiceProvider を使用してソルト長のランダム バイトを生成します。
  2. 平文にソルトを追加します。
  3. ソルトされた平文をハッシュします。
  4. 次に (これが重要なステップです)、ハッシュにソルトを再度追加します。

ハッシュ化されたテキストと比較するには、次を使用する必要があります。

public bool CompareHash(byte[] plaintext, byte[] hashedtext)

対再ハッシュと比較。再ハッシュすると、新しいランダム ソルトが生成され、失われます。

CompareHash は次のことを行います。

  1. ハッシュテキストからハッシュされていないソルトを取り除きます。上記の手順 4 で追加されたことを思い出してください。
  2. そのソルトを使用して、平文のハッシュを計算します。
  3. 新しいハッシュを hashedtext からソルトを引いたものと比較します。それらが同じである場合 - true、そうでない場合は false。

オリジナル:

「ハッシュプロバイダーでソルトが有効になっている場合、プロバイダーはランダムなバイトシーケンスを生成し、それがハッシュに追加されます。ハッシュされた値をハッシュされていない値と比較すると、ソルトはハッシュされた値から抽出され、使用されます比較する前に、ハッシュされていない値をハッシュします。」

「ハッシュ値としてのデコードに関しては、これはできません。ハッシュを作成した後、これを元の値に逆にする方法はありません。ただし、できることは、ハッシュされていない値とハッシュ値を比較することです。同じアルゴリズムを使用して出力を比較します。」

http://www.codeplex.com/entlib/Thread/View.aspx?ThreadId=10284から

于 2008-09-24T17:23:14.367 に答える
0

だから私は数年遅すぎると思いますが、ハッシュを作成するたびに新しいランダムソルト値が作成されることを理解しています。

于 2010-12-15T20:18:48.173 に答える
0

少しオフトピック :

この塩は虹の攻撃を防ぐために使用されます。レインボー攻撃は、事前に計算されたハッシュの非常に大きな (網羅的/通常は数ギガバイト) 辞書に基づいて、このハッシュが計算された文字列が何であったかを見つけようとする試みの一種です。

'Uncle' Jeffには、これに関するブログ エントリがあります

さらに、ウィキペディアを検索できます。

http://en.wikipedia.org/wiki/Rainbow_table

于 2008-10-05T23:19:49.110 に答える