質問: get_comment_meta( $comment_post_ID, 'password'); if (password_verify($loginpw, $hashed_pw[0])) { echo 'Password is valid!'; } else { echo 'Invalid password.'; } ?> ``` ### 試したこと パスワード照合の実態をさぐるため、下記をechoで表示比較。 `1 $loginpwのパスワードをpassword_hash()でハッシュ化したもの` `2 $hashed_pw(DB登録されいるもの)` 結果、以下のことがわかった。 ・1の値が認証フォームのボタンを押すたびに変化 ・1が2の値と一致していない ### 質問 同じパスワード「aaa」でハッシュ化されたパスワードが一致しないのは何故でしょうか? 対処方法があれば教えていただきたく、よろしくお願いいたします。
回答: > > 同じパスワード「aaa」でハッシュ化されたパスワードが一致しないのは何故でしょうか? > > > 逆に、「同じパスワードで保存したら同じハッシュ値が生成される」という状況だった場合、「よくあるパスワードのハッシュ値」を生成して、できたハッシュ値と比較するだけで、そのパスワードだということが判明してしまいます。 そういった問題を防ぐため、「ソルト」といってランダムな文字列を前につけて、その「ソルト」とハッシュ化後のパスワードをまとめて保存するようになっています。