PHPでログイン画面を制作しているのですが、password_hashについて質問があります。
https://qiita.com/rana_kualu/items/3ef57485be1103362f56
によると
password_hash関数は、同じパスワードを渡したとしても毎回異なる結果が出てきます。
これによって『AさんとBさんが同じハッシュだからよくあるパスワードだろう』といった推測も不可能となります。
crypt等の関数では手動実装が必要だったSALTの生成と保存、ストレッチングなどの処理を全てすっ飛ばして、これだけで安全なハッシュが保存されます。
実はpassword_hashはただのcryptのラッパーで、実際には関数内部でそのあたりの処理を行っているだけです。
しかし、その部分は表に全く出てこないので見た目がすっきりとし、実装し忘れミスもなくなるため安全性も高まります。
なおPASSWORD_BCRYPTはハッシュアルゴリズムのひとつで、CRYPT_BLOWFISHというアルゴリズムでハッシュ化します。
これは
SALTの生成と保存、ストレッチングなどの処理を全てすっ飛ばして、これだけで安全なハッシュが保存されます。
ソルトも自動的に発行されていると言うことでしょうか?それともソルトは自分自身で発行しデータベースにソルト+パスワード(ハッシュ)で保存するべきなのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/05/04 13:36