私は自分のサイトに多かれ少なかれ安全なログイン システムを作ろうとしていますが、物事を保護するのにあまり時間がなかったので、学習しながら学んでいます。次のうちどれが優れているか、またその理由についていくつかの意見を聞きたいと思っていました。(それともどこかで間違えた?)
$staticsalt = '$%*#)$*)^A#$#543667ggfdf\#$%x';
$random = md5(uniqid(mt_rand(), true));
$salt = hash('sha512',$random.$_POST['password'].microtime().$staticsalt);
どちらか(データベースに $salt が必要ない場合...)
$password = crypt($_POST['password'], '$2a$12$'.$salt);
または(データベースにも $salt が必要な場合...)
$password = hash('sha512',$salt.$_POST['password']);