2019-02-01

anond:20190201211829

うまく説明できるかわからないけどしてみる。あと、誤っていたら誰かからどんどんツッコミが入ることも期待している。

まず、目的は「ハッシュ化されたパスワードSaltを別々の場所に保存すること」とする。

が、たとえばPHPハッシュ関数だと、出力される文字列は「123ABCDEF」のようになる。ここで「123」がSalt、「ABCDEF」がハッシュ化されたパスワードになる。つまりSaltハッシュ化されたパスワードが、連結された一つの文字列として出力される。

目的を満たすためにはこれを「123」と「ABCDEF」に分ける必要がある。ところが、「123」というSaltの「3文字の長さの文字列」というのは、ハッシュアルゴリズムなどによって変わってくる。必ずしも3文字とは限らない。したがって、ハッシュアルゴリズムを気軽に変えることができず、柔軟な対応ができない。

すなわち、最初目的であるハッシュ化されたパスワードSaltを別々の場所に保存すること」ということが適切な方針ではないし、ハッシュ関数はそれを期待していない、ということ。

だと思うのだけどどうだろうか。

記事への反応 -
  • ハッシュのSaltって一緒に保存するんじゃないの?

    ここ http://b.hatena.ne.jp/entry/s/jiraffe.co.jp/news/2019/01/31/1321/ のブコメを見ていると、「Saltも漏れたのかよpgr」ってコメントが多いんだけど、Saltって一緒に保存するんじゃないの? $2y$10$aPd...

    • anond:20190201114414

      パスワードとは別の場所に保存しとくとか、ユーザーIDをハッシュ化したものにするとか、やり方は色々ありそうだ。

      • anond:20190201114926

        いやいや、例えばPHPのpassword_hash()の結果を分割して保存しないでしょ。 文字数区切りで分割保存したとしたら、ハッシュ化アルゴリズム変わったときに区切り文字数の部分も変更しなき...

        • anond:20190201210311

          すまない、なんの話をしてるのかよく分からん。 文字数区切りで分割保存したとしたら 取り敢えずこれはどういうこっちゃ?

          • anond:20190201211829

            うまく説明できるかわからないけどしてみる。あと、誤っていたら誰かからどんどんツッコミが入ることも期待している。 まず、目的は「ハッシュ化されたパスワードとSaltを別々の場...

            • anond:20190201232924

              横だけど勉強になったわ ぐぐったらSaltは一緒に入れとくもんで、もともと時間稼ぎ程度の役割しかないものだからSaltとは別に平文+Saltに対して「外部のSalt」とでも言うべき役割を果た...

              • anond:20190201235040

                言いたかったことが伝わっていてうれしい。 「Saltとハッシュ化されたパスワード(つまりハッシュ)は一緒に保存しておくこと」が今現在においてはベターな方法で、したがって「ハ...

            • anond:20190201232924

              概ね横増田と同じような内容を調べて同じような感想になったので、そこら辺は省くね。 ただ、password_hash は内部的に bcrypt を使っていて、 bcryptはパスワードとSaltを . (ドット)で区切っ...

    • anond:20190201114414

      saltはレインボーテーブル攻撃に対応するためだから、saltを別に保存する必要ないわな。

記事への反応(ブックマークコメント)

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん