APIキーを生成します。プレーンテキストではなく、ハッシュを保存する予定です。パスワードの保存と同様に、saltも必要ですか?
AFAIKソルトはレインボーテーブル攻撃を防ぎますが、これらは辞書攻撃のより洗練された方法であるため、ソルトは必要ないと思いますが、確認したいと思います。
いいえ。APIキーのハッシュにソルトを追加するためにneedを行う必要はありません。
APIキーは、エントロピーの高いランダムソースから作成され、過去のキーに基づいて将来のキーを推測しようとする攻撃に抵抗できる必要があります。
ほとんどのパスワードは、非常に低いエントロピーソース(ユーザー)から作成されます。さらに、ほとんどのパスワードも再利用されるため、最も一般的なパスワードの事前計算ハッシュに価値があります。
簡単に利用できる最大のブルートフォースレインボーテーブルは、MD5、英数字、最大9文字のテーブルです。これは、アクセントなしのアラビア数字と大文字と小文字のUS-英語のアルファベットを意味すると仮定すると、58 ^ 9の可能性があります。 APIキーが60ビット(58 ^ 10〜= 430兆、つまり(2 ^ 61)-1未満)である限り、どのハッシュアルゴリズムでもRainbowテーブルが10文字より長くなるとは思いません。 〜= 576兆)、おそらくレインボーテーブルから安全です。
ただし、128ビットを使用してください。そうすれば、そのようなテーブルを構築しようとしている人が惑星サイズのコンピューターを持っている場合でも、レインボーテーブルから宇宙の熱死まで安全になります。
ただし、必要に応じて、またはセキュリティを完全に理解していないマネージャーがソルトを常にハッシュで使用する必要があると想定している場合は、ソルトを追加できます。キー自体がまだ長く、エントロピーの高いソースから作成されたことを確認してください。