ポータブル PHP パスワード ハッシュ フレームワークを使用してパスワードをハッシュしたいと考えています。しかし、そのデモでは、パスワードのハッシュにソルトが使用されていないことがわかりました。しかし、パスワードをチェックするためにダミーのソルトを使用していますが、これは奇妙で、この考えがまったくわかりません。
$dummy_salt = '$2a$08$1234567890123456789012';
if (isset($dummy_salt) && strlen($hash) < 20)
$hash = $dummy_salt;
一意のソルトを生成してデータベース内の各ユーザーに保存できる慣習的な方法を使用したい場合、Portable PHP パスワード ハッシュ フレームワークを使用してソルトを生成するにはどうすればよいでしょうか?
これは私がパスワードをハッシュするために使用する関数ですが、sha512 には sha1 と同じ問題があると言われています。ポータブル PHP パスワードハッシュフレームワークのような専門家を信頼するのが賢明です。
function hash_sha512($phrase,&$salt = null)
{
//$pepper = '!@#$%^&*()_+=-{}][;";/?<>.,';
if ($salt == '')
{
$salt = substr(hash('sha512',uniqid(rand(), true).PEPPER_KEY.microtime()), 0, SALT_LENGTH);
}
else
{
$salt = substr($salt, 0, SALT_LENGTH);
}
return hash('sha512',$salt.PEPPER_KEY.$phrase);
}
何かアイデアがあれば教えてください。ありがとう。