2012-04-22 4 views
2

私は周りを見渡してきました。パスワードを安全に保存するためには、さまざまな方法があるように思われます。すべての仕事をある意味で行うcrypt()のようなものを使用しないと仮定すると、sha256やsha512で使用するために無作為に生成された塩はどのように保存すべきですか?私はこれをどのようにすることができるかを考えましたが、効果的にどのように効果を発揮するかについては固執しています。それらをすべてデータベースに格納し、それらをすべて使用する必要はありません。実際に使用されている方法が実際にあるのか、これが本当に唯一の方法であるのかを知りたいのです。前もって感謝します。ハッシングのために作成された塩をデータベースに保存するにはどうすればいいですか?

答えて

4

通常、塩はパスワードハッシュで同じ列または隣接列に格納されます。これについては何も効率的ではありません。パスワードごとに異なる塩を使用することは、パスワードシステムを堅牢にする要因です。

+0

よく分かります。しかし、もし彼らが塩を持っていれば、それはそれを簡単にすることができないでしょうか?手元にある塩で、実行する必要があるのは、それを強制するために何かが使われている塩を加えることだけです。すべての塩を使って別のテーブルに保管する方が理に適っていると思いました。 – Andy

+0

@Andy:それを別のテーブルに置くと、どのようにしてより安全になりますか?塩は秘密ではないはずです。ユーザーあたりの効果的なユニークなハッシング関数を提供することになっています。ブルートフォース攻撃を防ぐ方法は、bcryptのような遅いハッシュ関数を使うことです。 –

+0

@Andy、塩を持っていると、ハッシュと衝突するのに必要なデータを見つけるのが容易になりません。それでも同じ数の処理が必要です。それぞれのパスワードを個別にソートするということは、衝突を見つけてサイトに入るために使用する場合、それらのすべてではなく、1つのアカウントしか持たないことを意味します。塩を持っていても助けにならない...ハッシュを生成するときに塩が使われたことだけが重要です。 – Brad

関連する問題