私はパスワードのハッシュ化にLaravelのbcrypt
機能を使用しています。
bcrypt('secret')
私は
=> "$2y$10$mnPgYt2xm9pxb/c2I.SH.uuhgrOj4WajDQTJYssUbTjmPOcgQybcu"
しかし、もう一度実行すると、
=> "$2y$10$J8h.Xmf6muivJ4bDweUlcu/BaNzI2wlBiAcop30PbPoKa0kDaf9xi"
等々...
では、毎回異なる値を取得すると、パスワードの照合プロセスは失敗しませんか?
ベストアンサー1
これがbcrypt
本来の動作です。ウィキペディア。
Bcryptはランダム 128 ビット ソルトハッシュ中に。これは塩ハッシュの一部となるため、同じ入力文字列に対して常に異なるハッシュ値が得られます。ランダムソルトは実際には、ブルートフォース攻撃。
ハッシュ値が異なるため、パスワード照合プロセスが失敗することはありません。次の操作を試してください。tinker
$hash1 = bcrypt('secret')
$hash2 = bcrypt('secret')
Hash::check('secret', $hash1)
Hash::check('secret', $hash2)
true
両方のケースで取得する必要がありますHash::check
。
したがって、ハッシュ値が異なっていても、パスワードの照合は失敗しません。