在使用 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);
?>
很奇怪,但是在密码学方面我有很多东西要学。(这里是其中一种盐的链接https://shrib.com/F7lB9Ycf)现在如果我要添加额外的盐(如果你说是,再次加盐),那么我将如何在使用 password_verify 时添加盐()?
提前感谢任何可以提供帮助的人!