回答編集履歴
3
体裁修正
answer
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
[追記]
|
2
|
-
---------------------------------------
|
3
2
|
一般的なユーザー登録と認証の概要だけの説明です。
|
4
3
|
セキュリティめっちゃ大事なので、概要をつかめたら是非他の人のアンサーを読んで考えてみたり、
|
5
4
|
devise本体の実装も読んでみてください。
|
6
|
-
---------------------------------------
|
7
5
|
|
6
|
+
|
8
7
|
※前提としてハッシュ関数は一方向の関数であり、同じ文字列を同じアルゴリズムでハッシュ化すると必ず同じハッシュ値が得られます。
|
9
8
|
|
10
9
|
### ステップ①:ユーザー登録時
|
2
追記を記述
answer
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
[追記]
|
2
|
+
---------------------------------------
|
3
|
+
一般的なユーザー登録と認証の概要だけの説明です。
|
4
|
+
セキュリティめっちゃ大事なので、概要をつかめたら是非他の人のアンサーを読んで考えてみたり、
|
5
|
+
devise本体の実装も読んでみてください。
|
6
|
+
---------------------------------------
|
7
|
+
|
8
|
+
※前提としてハッシュ関数は一方向の関数であり、同じ文字列を同じアルゴリズムでハッシュ化すると必ず同じハッシュ値が得られます。
|
9
|
+
|
1
10
|
### ステップ①:ユーザー登録時
|
2
11
|
仮にパスワードに`abc`という文字列を指定するとします。
|
3
12
|
|
1
文章の修正
answer
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
|
12
12
|
この場合2つの文字列は一致しているので、プログラムは「正しいパスワードが入力された」とみなすことができます。
|
13
13
|
|
14
|
-
DBには
|
14
|
+
DBにはハッシュ関数でハッシュ化された不可逆な情報しか登録されていないので、万が一漏洩した場合でも、本当のパスワード`abc`を知ることができません。
|
15
15
|
|
16
16
|
### 補足
|
17
17
|
ハッシュ化された値は不可逆ですが、SHA256でハッシュ化すると`abc`は`BA7816BF8F01CFEA414140DE5DAE2223B00361A396177A9CB410FF61F20015AD`という値になるよねということは周知の事実です。
|