0

パスワードをmysql DBに保存するためにsha1関数を使用しています..

$passwordHash = sha1($password);

Google から取得しました ユーザー登録から

sha1( sha1(users_plaintext_password)+random string )

チェックする

server computes sha1( users_hashed_password_in_database +
$_SESSION['random_string'] )

if $_POST['password'] ==
sha1( users_hashed_password_in_database + $_SESSION['random_string'] )

私の質問は、検証を確認するにはどうすればよいですか?これは正しい方法ですか?? そして、ランダムな文字列を塩として使用すると、パスワードがより保護されますか??

4

1 に答える 1

1

私は次のようにします:

$seed = 'some random string';
$passwordHash = sha1($password.$seed);

次に、ユーザーが入力したデータで同じことを行います。

$pass = $_POST['password'];
if(sha1($pass.$seed) == $passwordHash){
    //log user in
}

ユーザーは推測しやすいパスワードを選択することが多いため、シードを使用することをお勧めします。もう 1 つの利点は、誰かが侵入した場合にシードを変更することで、サイトのセキュリティを回復できる可能性があることです。

于 2013-04-23T19:14:59.873 に答える