2

PHP のネイティブ password_hash() 関数を使用する場合、(私の理解では) 独自のソルトを生成する必要があります (または生成する必要があります)。この例 ( http://www.php.ネット):

 <?php
/**
 * Note that the salt here is randomly generated.
 * Never use a static salt or one that is not randomly generated.
 *
 * For the VAST majority of use-cases, let password_hash generate the salt randomly for you
 */
$options = [
   'cost' => 11,
'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM),
];
echo password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options)."\n";
?>

現在、sha512 を使用してハッシュし、38,500 文字のソルトを生成しています。(文字数が本当に重要かどうかわからなかったので、とにかく試してみました…ユーザーの登録とログインが成功したように見えますが、これのセキュリティ上の欠陥全体を知りません)このようなもの:

  <?php
  $Salt =  str_repeat(hash("sha512", uniqid(time())), 40);
  ?>

かなり奇妙ですが、暗号化に関しては、学ぶべきことがたくさんあります。(ここにソルトの1つへのリンクがあります https://shrib.com/F7lB9Ycf)さらにソルトを追加する場合(「はい」と言う場合は、もう一度ソルトします)、password_verifyを使用してソルトを追加するにはどうすればよいですか()?

助けてくれる人に前もって感謝します!

4

2 に答える 2

0

password_hash()独自の塩を生成します。もう一度ソルトする必要はありません。PHPリファレンスからこれを参照してください。省略した場合、ハッシュされたパスワードごとに password_hash() によってランダムなソルトが生成されます。これは意図した動作モードです。

于 2015-02-16T23:41:47.123 に答える