回答編集履歴
1
追記
test
CHANGED
@@ -1,14 +1,18 @@
|
|
1
|
-
フレームワークを使用しない 素の php のログインシステムであれば、現在は [password_hash](http://php.net/manual/ja/function.password-hash.php) と [password_verify](http://php.net/manual/ja/function.password-verify.php) の組合せ
|
1
|
+
前提条件として、フレームワークを使用しない 素の php のログインシステムであれば、現在は [password_hash](http://php.net/manual/ja/function.password-hash.php) と [password_verify](http://php.net/manual/ja/function.password-verify.php) の組合せを使用しない選択肢は無いと思います。
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
|
5
|
+
参考記事:[2018年のパスワードハッシュ](https://qiita.com/rana_kualu/items/3ef57485be1103362f56)
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
|
9
|
+
これらの関数を使用したログインシステムでは、登録時にはパスワードを「ハッシュ化」して、そのハッシュ値に、「使用したアルゴリズム/コスト/ソルト」情報を付加したものを DB に登録します。このあたりはマニュアルや、実際の挙動を見てください。
|
10
10
|
|
11
|
+
|
12
|
+
|
13
|
+
で、本題ですが、現在主流のほとんどのログインシステムでは、パスワード同士の比較ではなく、パスワードを「ハッシュ化」したモノを比較し検証する手法が採用されているため、ログイン時のフローは、
|
14
|
+
|
11
|
-
・
|
15
|
+
・DB 上のハッシュ情報(ハッシュ値/アルゴリズム/コスト/ソルト)を取得
|
12
16
|
|
13
17
|
・その情報を用いて、投稿された password を検証
|
14
18
|
|