ところでパスワードの保存は
記者「ところでパスワードの保存はどうすればいいんでしょうね」
デスク「決まってるだろ、小沢だよ小沢」
記者「さすがデスク、情報通ですね」
デスク「いいから検索しろ!」
すみません、出だしから少し間違えました。
パスワードの保存は次3つののルールにのっとってやりましょう
ルール1
パスワードは平文で保存しないで暗号化する
ルール2
復号化できる暗号化をしない。
ルール3
パスワードは暗号化する
具体的にはこんな手順で
1.パスワードを暗号化するためランダムデータ(Saltとかいう奴)を用意します。
2.Saltを使って暗号化
3.保存
ユーザーがパスワードを入力したら
1.入力したパスワードを上と同じ手順で暗号化
2.データベースのパスワード(暗号化済み)と比較
以上
ちなみに、Saltはユーザーごとに用意する必要があるので、「パスワードを忘れたときのヒント」みたいな感じでユーザーに入力させる方法もとれます。
その場合はSalt自体も暗号化する必要があるから、Saltを暗号化するSaltもほしくなっちゃう。
塩分とり過ぎ。
なんつって。
結論
システム開発を依頼してて、相手が「ユーザーがパスワードを忘れたときはメールでパスワードを送ります」とか言い出したら、危険信号。