ソルトの唯一の目的はレインボー テーブルの攻撃を防ぐことだと聞きましたが、それ以上の価値があるのでしょうか? 辞書ベースの攻撃も防げませんか? そして、ブルートフォースについてはどうですか、そこで塩は役に立ちますか? 理由を教えてください。
次に、マイクロタイム、128 文字のソルト、および 10 億から 100 億の間の乱数を取り、それらを一緒にハッシュするアルゴリズムがあるとします。これにより、優れたレベルのセキュリティが提供されますか? たとえ攻撃者がそれらの詳細の 1 つを知っていたとしても、残りを計算することは計算上実行不可能であるように私には思えます。そうですよね?
ありがとう、
ベン
編集:明確にするために、攻撃者はハッシュ アルゴリズムにアクセスできないため、システムに情報をスパム送信することはできません。彼らが持っているのはハッシュだけであり、それがどのようにコンパイルされたかを理解する必要があります. ハッシュがどのように生成されたかを知っていたとしても、長いソルトを使用してすべての組み合わせをブルート フォースしようとすると、非現実的になりますか?
また、ハッシュはユーザーのパスワードやユーザー名ではなく、認証に使用されるランダムな文字セットです。そのため、ソルトと乱数を保存する必要はなく、結果のハッシュだけを保存する必要があります。その場合、以下のコードのようなもので表される上記のシステムは、攻撃者がユーザーのハッシュが何であるかを現実的に推測することを防ぐのに適したシステムでしょうか?
$salt = "some random characters I made up";
hash('sha256', microtime(true).$salt.mt_rand(1000,9999));
上記の数十億ではなく、わずか 1000 ~ 9999 であることはわかっています。
再度、感謝します。