ソルトのベスト プラクティスに関していくつかの素晴らしい議論がありましたが、パスワードごとに異なるソルトを生成し、それをパスワードと一緒にデータベースに保存することが圧倒的に推奨されているようです。
しかし、ソルトの目的を正しく理解すれば、レインボー テーブル アタックによって危険にさらされる可能性を減らすことができます。したがって、データベースに保存することで、ユーザーごとに変更するのが最適であることは理解していますが、ソルトがデータベースの近くにない場合はどうなりますか? コードに 1 つのソルト値を格納すると (Web サーバーではコンパイル済みの dll になります)、攻撃者が何らかの形でデータベースにアクセスできた場合、同じ目的にはなりませんか? より安全であるように思えます。