2016-10-28 11 views
-2

は、次のtypescriptですを考えてみましょう。なぜbcryptは常に異なる結果を返しますか?

$ ./artisan tinker 
>>> bcrypt('123456') 
=> "$2y$10$YLswQefA6JXTYMM5nH90we9siAtG71I1/LMa5XIkplCF32EMtXmKK" 
>>> bcrypt('123456') 
=> "$2y$10$LoakjerqalqFxI6r.BR.x.K1fycqWS59Xqfj.pblSzlPNLOcbWa/6" 

それはなぜですか?

+0

@AlexeyMezeninまず、 '。/ php'は一般的には動作しません。第二に、それをそのまま残してみてはいかがですか(/。職人)?これは、「職人」を実行可能にしてより容易に実行できることを示唆している。まだそれを知らない人のために。 –

+0

あなたがdownvoteのときに説明してもよろしいですか?) –

答えて

2

毎回異なる塩が使用されています。 precomputed hash tablesが使用されないように、random saltがハッシュに混在しています。塩害がなければ、攻撃者は認識可能なハッシュのためにpassword123のような共通の文字列を検出することができます。塩漬けは、ハッシュが予測できないことを保証する。

+0

また、2人以上の人が同じパスワードを持っているかどうかを即座に知ることができます –

+0

あなたが言及しているのであれば、私は、パスワードとハッシュの間のマッピングだけではないのですか?スマートハッシュテーブル? –

+0

パスワードとハッシュの間のマッピングです。塩析を行わないと、攻撃者は多くの共通パスワードをハッシュ値で事前計算できます。 –

関連する問題