0

何かについてのフィードバックをお願いします。

基本的に、$uniqueID という値があります。これは、= ID + 名の最初の文字 + 姓の最初の文字 + 文字列「CAN」です。

次に、$salt = sha1($uniqueID); のように $uniqueID をソルト値に変換しました。

次に、md5() を使用して、ユーザーのパスワードをハッシュ値に変換しました。

次に、正しいデータ型を使用して、これら 2 つの値を別々にデータベースに格納しました。

これが2種類のユーザー検証を保護する安全な方法になるかどうか疑問に思っていましたか? パスワードの検証はユーザーが行い、$uniqueID はスクリプトを介して行います。

新しいパスワードを作成する必要があるため、パスワードを思い出させるサービスは提供しません。

また、セッションにいくつかのセキュリティを実装しました。

4

2 に答える 2

1

一般に、ソルトは、使用されるデータムごとに一意のランダム値です。つまり、各ユーザーは、パスワードをハッシュするときに使用される独自のランダムで一意のソルトを持つ必要があります。また、ユーザー情報を使用してソルトを生成しないでください。

たとえば、 と を使用randuniqidて、ユーザーごとにランダムで一意のソルトを生成できます。

$salt = uniqid(rand(), true);

このソルトは、一意かつランダムです。

于 2010-03-03T14:52:10.780 に答える
0

とパスワード フィールドのsha1両方で使用することをお勧めします。$uniqueID

また、必ずパスワード フィールドにソルトを設定してください。

また、一方向のハッシュが異なる入力から同じ値に到達する可能性があることにも注意してください。Gumbo が指摘するように$uniqueID、一意の ID として使用することを計画している場合、問題が発生します。(そうしないでください;-)

セッションキーとして使用する場合は、使用するuniqueID前に少なくとも衝突を確認する必要があります。Zend.SessionCodeIgniter->session、およびKohona::Sessionを参照してください。

于 2010-03-03T14:12:11.343 に答える