質問: DBへパスワードを登録するときに password_hash($_SESSION['join1']['pw'],PASSWORD_DEFAULT) でパスワードをハッシュ化して登録したのですが、 プロフィール更新ページを作っていて パスワードを取得して表示させたのですが ハッシュ化されて表示されてしまっているので このハッシュ化されたパスワードを解除(生パスワードに戻したい)する方法が知りたいです。
回答: パスワードの管理法についての参考情報を示しておきます。 最近では同じパスワードでも毎回異なるハッシュ値になるようになっており、 ハッシュ結果を単純に比較しただけではパスワード一致したかは判定できないyいうになっています。 * ハッシュ化と暗号化は違う。ハッシュ化(SHA1,MD5)すると、元には戻らない * SHA1でハッシュ化したパスワードは危険になった * laravel5.1のパスワード・ハッシュ化にbcryptを使ってみたら、同じパスワードでもハッシュ値が毎回変わる > > ... > > 同じ値をハッシュ化しても、出力されるハッシュ値(ソルト)が違うので、単純に文字列比較しても一致しない!! > > ... > > じゃあ、どうするかというと専用の関数を使う。 > > Hash::check(‘平文’, bcrypt(‘平文’))で、自動生成されたソルトとコストでハッシュ化した後に比較してくれるので無問題! > > ... > > > * パスワード保存方法の過去と現在そして未来 > > ... > > 大昔編その2 - 単純なHash化 > > 現代編 その1 - saltの導入とmd5 から sha2 へ > > 現代編 その2 - ストレッチングの導入 > > 現代編 その3 - bcrypt の登場 > > 現代編 - 課題 > > 未来編 > > >