SaltEnabledを設定すると、Microsoft Enterprise LibraryのHashProviderでソルトがどのように生成されますか?
新しいマシンにランダムですか?マジックナンバーですか?
(私はソルトとは何かを知っています。問題は、エンタープライズライブラリHashProviderのソルトの実際の値は何ですか)
SaltEnabledを設定すると、Microsoft Enterprise LibraryのHashProviderでソルトがどのように生成されますか?
新しいマシンにランダムですか?マジックナンバーですか?
(私はソルトとは何かを知っています。問題は、エンタープライズライブラリHashProviderのソルトの実際の値は何ですか)
編集:
実装例については、Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.HashAlgorithmProvider を参照してください。ハッシュの手順は次のとおりです。
ハッシュ化されたテキストと比較するには、次を使用する必要があります。
public bool CompareHash(byte[] plaintext, byte[] hashedtext)
対再ハッシュと比較。再ハッシュすると、新しいランダム ソルトが生成され、失われます。
CompareHash は次のことを行います。
オリジナル:
「ハッシュプロバイダーでソルトが有効になっている場合、プロバイダーはランダムなバイトシーケンスを生成し、それがハッシュに追加されます。ハッシュされた値をハッシュされていない値と比較すると、ソルトはハッシュされた値から抽出され、使用されます比較する前に、ハッシュされていない値をハッシュします。」
と
「ハッシュ値としてのデコードに関しては、これはできません。ハッシュを作成した後、これを元の値に逆にする方法はありません。ただし、できることは、ハッシュされていない値とハッシュ値を比較することです。同じアルゴリズムを使用して出力を比較します。」
http://www.codeplex.com/entlib/Thread/View.aspx?ThreadId=10284から
だから私は数年遅すぎると思いますが、ハッシュを作成するたびに新しいランダムソルト値が作成されることを理解しています。
少しオフトピック :
この塩は虹の攻撃を防ぐために使用されます。レインボー攻撃は、事前に計算されたハッシュの非常に大きな (網羅的/通常は数ギガバイト) 辞書に基づいて、このハッシュが計算された文字列が何であったかを見つけようとする試みの一種です。
'Uncle' Jeffには、これに関するブログ エントリがあります。
さらに、ウィキペディアを検索できます。