php でMySQLにパスワードなど暗号化したい文字列を格納し、
更にそれが合ってるかの確認処理したいとき。
qiita にわかりやすい記事あったのでメモしとく。
ハッシュ化
password_hash() 関数を使う。
password_hash(‘ハッシュ化する文字列’, アルゴリズム);
アルゴリズムの部分は「PASSWORD_DEFAULT」にしてると、phpのバージョンアップなどでアルゴリズムが変わってハッシュ化された文字列が変わる(文字数も増える)らしいのでMySQLでVARCHAR型で幅指定する場合は60文字だとギリギリだから、大きく取っといた方がいいらしい。公式は255文字ぐらい取っとけと言っている。
アルゴリズムを「PASSWORD_BCRYPT」にしとけばハッシュ化された文字列は60文字固定。ただしハッシュアルゴリズムは変わらない。
ハッシュ化したものが合ってるか確認
password_verify() 関数を使う。
password_verify(‘文字列’, ‘ハッシュ値);
コメント