0

次の方法は、ユーザーのパスワードをデータベースに保存する安全な方法ですか?

登録時:

$salt=hash("sha512", rand());
$password=hash("sha512", $_POST["password"].$salt);

insert_values_into_db;

ログイン時:

$given_password=$_POST["password"];

$salt=get_salt_from_db;
$correct_password=get_password_from_db;

if(hash("sha512", $given_password.$salt) === $correct_password){
    //Password is correct
}else{
    //Password is incorrect
}

これに明らかに明らかなエラーはありますか?

4

3 に答える 3

0

これらのすべてのハッシュは速度が最適化されており、プロセッサで簡単に実行できるようになっています。(MD5、SHA512 など) このため、クラッキングは簡単です。さらに数回再ハッシュするか、単にhttp://php.net/manual/en/function.crypt.phpcryptというメソッドを使用します。

PHP のドキュメントでパスワード ハッシュの詳細を参照してください: http://php.net/manual/en/faq.passwords.php

于 2013-11-06T20:44:03.350 に答える