授業ノートのまとめ
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ログイン認証を作りましょう
パスワード入力のinputは***になるようにしたい
→<input type="password">
database
users/3カラム
u_id
pass
nickname
はてな?
u_idをAIにしてu_nameは別に持つと思ったがそうはしないんだ?
・パスワード文字数は時代とともに増える性質があるからintの長さは多めにとる
・パスワードはハッシュするのでその意味でも長くしておく理由がある
ハッシュをしなくちゃいけない
ハッシュ専用のphpの関数がある
むかしはmd5(関数名)というのが使われた
md('hoge');
とか。
<?php echo md5("hoge"); ?>
→出力結果
ea703e7aa1efda0064eaa507d9e8ab7e
しかしこれは総当たり的な解析をされて使えなくなった
クリプトというアルゴリズムが考え出された
技術用語でソルトという。ハッシュ+ソルトでハッシュする
自分が好きなキーワードを仕込んで置き、
それを組み合わせてハッシュするのでわかりにくくなる
いまはこのソルトを入れるのが常識。
ソルト自身をランダムに作り、しかもハッシュして、
それを純粋にパスワードをハッシュしたものに内在させるという最新の手法がうまれた
同じ文字列をハッシュするたびに毎回違う値が出る
password_hash();
<?php echo password_hash("hoge",PASSWORD_DEFAULT); ?>
全部大文字は定数。バージョンがかわってもよろしく動く
第3引数をなしにするとランダムにソルトが生成
出力結果
$2y$10$S5H/GyQ72m8JdxWwMy3Gq.ulJwuaAEDtMVVZlhuw5ThtZqbE8uYba
$2y$10$YrpJTQZFk0zD9s7b.WNAmuSaSLkmYSuiUsfS.eJ1Wr6Un.nRPrGdq
$2y$10$.NTFtovLqwrqWTkKqXM7BOIifMZkww5EoIpBIYxgvTHkBz15wF/d.
みなさんpassをhogehogeで統一するよ
①出てきたものをこぴる
$2y$10$PQbARvt2wZI229dF1vAN9Ob1Tgia2xTkJvZbhq4YglLy0a.lwx8GS
②myadminの「挿入」でそれを入れる
password_hash();
第一 ハッシュする文字列
第二 PASSWORD_DEFAULT(固定)
第三 書かない
検証する関数
password_verify();
引数1 送信された値(平文)
引数2 ハッシュ済み値(DBに登録されているハッシュされたやつ)
ただいまコメントを受けつけておりません。