K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>salt の役割を理解していればそんな質問最初から出ないと思うが・・・ >先に挙げた掲示板上の議論の詳細は読んで理解できた? > >課題1:パスワードを平文(ひらぶん)で保存するのはユーザにとっても管理人にとってもうれしくない >解決策:パスワードを1方向ハッシュで保存したらいい >1方向ハッシュとして MD5 アルゴリズムを使うとしたら md5($password) でいい ># そもそも1方向ハッシュって何か?の解説は略 > >ここまで大丈夫?これが理解できていないのであれば以下の話は読むだけ無駄。 > >課題2:データベースクラックされてハッシュ化されているパスワードが漏れたら、 >そのときのセキュリティをどう担保すればいい? >解決策:パスワードだけを md5 すると「md5 辞書アタック」で破られうるので、 >パスワードに別の文字をくっつけたら「破るコストが跳ね上がる=破られない」。 >そのために「くっつける文字」というのを用意するとよい (これが salt) > >PHP では文字列の連結に . を使う。"hoge" . "piyo" は連結されて "hogepiyo" になる。 >http://www.php.net/manual/ja/language.operators.string.php > >ユーザーが入力したパスワード (例: "hoge") に >掲示板ソフトが用意した乱数文字列 salt (例: "piyo") をくっつけて >md5("hogepiyo") としてハッシュ値を保存すれば、 >データーベースがクラックされてハッシュ結果と salt の "piyo" が漏れても >元パスワード "hoge" を取り出すコストは膨大なものになる=破りにくい。 ># 実用的時間のうちに破ることができないのであれば、破られないと言い切っていい。 > >先の hash_user_password は「ユーザの入力したパスワード」「ソフトが乱数で用意した salt 」の他に >「掲示板プログラムをインストールするごとに変えられるカスタマイズ可能文字 "秘密" 」をくっつけている。 > >だから "秘密" のところには何を入れてもいい。
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!