0

私はあまりにも長い間Googleで勉強/調べてきました.まあまあのチュートリアルがたくさんありますが、PHP内の(crypt)関数の「オプションのSALT」パラメータについて少し疑問に思っています. 開いているタブが多すぎてどこにも行けないので、この時点で、助けを求めるだけだと思いました。

塩に関しては、追加しないと追加されるとどこかで読みましたが、これは良い習慣ではありません。良い/良くない「理由」が見つからないようです。これはどのように処理する必要がありますか?

私は塩のランダム化についてあちこちでいくつか読んだことがありますが、他の人はそれは問題ではないと言います...再び混乱します.

また、保存されたデータとの照合にも問題があります。明らかに私が何かをするなら

crypt("pass string here",salt here);

パスのランダムな文字列を取得するのは難しい....ユーザーがログインすると、次の値

$_POST['the entered name/pass etc '];

そのユーザーパスの db 値と照合すると、常に false になります。それで、id は、ユーザーの入力時に与えられたパスを /salt に再ハッシュ、データベースの内容に対してテストする必要があると思いますか?

また、私はネット全体を読みました(しかし、この時点で私は混乱しています)どういうわけかソルトがデータベースに保存されているのですか?隠す必要はないのでは?

私は続けていくことができますが、正直なところ迷ってしまいました。この時点で、誰かがそれらのリソースを持っている場合、本当に好むのはチュートリアルとの良いリンクです.

4

2 に答える 2

0

ユーザーがサインアップするときに安全なランダムなソルト値を生成し、そのソルトをデータベースに保存する必要があります。

ユーザーがログインすると、データベースからソルトとハッシュを取得し、元のソルトを使用して入力したパスワードのハッシュを計算し、ハッシュが一致することを確認します。

また、汎用のハッシュ アルゴリズム (MD5 や SHA* など) を使用しないでください。代わりに、bcrypt、scrypt、または PBKDFv2 などの専用の低速パスワード ハッシュ アルゴリズムを使用してください。

于 2012-10-24T20:41:47.183 に答える
0

セキュリティを最大限に高めるために、データベースに平文のパスワードを決して持たず、そのデータベースにアクセスできる/できる人なら誰でもパスワードを公開したままにします。したがって、定義済みのソルトを選択し、ユーザーの希望するパスワードを取得して、ソルトとハッシュを使用して暗号化します。

ソルトは、ハッシュ化されたパスワードをさらに安全にするために追加する追加のランダムな文字です。これを追跡する必要があります。

次に、ハッシュはソルト + パスワードを取得し、それに基づいてランダムな文字列を生成します。これにより、同じソルト + パスワードを指定すると、常にその一意のハッシュが取得されます。

これは、ソルティング/ハッシングのかなり有用な紹介のようです。

http://crackstation.net/hashing-security.htm

于 2012-10-24T20:47:04.407 に答える