2017-03-08 12 views
0

ハッシュパスワードを保存します。ハッシュ値は、2つの異なるSQLテーブルにまたがって一意であるである必要があります。2つの異なるSQLテーブル間で一意のハッシュ値

塩はランダムな文字と数字で構成され、パスワードとログインにスラッシュは使用できません。

一意性を保証するために、区切り文字と一意のログインを追加したいと思います。

例(擬似コード):

hash(salt + password + “/” + login)  

アイデアは、一意のランダムな塩のために2つの異なるテーブルを検索回避することです。

このように格納されたハッシュを作成するとセキュリティが低下しますか?

+0

ハッシュ関数を使用するだけでは不十分で、単に塩を追加するだけでセキュリティを向上させることはほとんどありません。代わりに、約100msの持続時間の間、ランダムな塩でHMACを繰り返し、塩をハッシュで保存してください。 'PBKDF2'、' Rfc2898DeriveBytes'、 'password_hash'、' Bcrypt'などの関数を使用してください。要点は、攻撃者が無差別にパスワードを見つけるのに多くの時間を費やすことです。 – zaph

答えて

0

パスワードを「ハッシュ」するのに適切なタイプの「ハッシュ」機能を使用していないように聞こえます。そうした場合、この質問をする必要はないからです。

SHAファミリなどの一般的なハッシュ関数は、パスワードの保護には適していません。問題は、それらが計算が速すぎるということです。これは、パスワードが強要される可能性があることを意味します。詳細は、thisを参照してください。

あなたが使用する必要があるのは、(または使用できない場合は少なくともpbkdf2)のような機能で、塩とパスワードの両方を別々のパラメータとして入力し、データベース。

この混乱している単語"hash"の使用について、暗号化およびセキュリティコミュニティに代わってお詫び申し上げます。残念ながら、すぐに修正されるようには見えません。

+0

偉大なリンク(https://www.troyhunt.com/our-password-hashing-has-no-clothes/)を読んでいただきありがとうございます。テキストを読んだり理解したりして、私の質問を明確にするために戻ってきます。 – selcox

関連する問題