如果我哈希两次密码:
$psw1= password_hash($password,PASSWORD_DEFAULT);
$psw2=password_hash($psw1,PASSWORD_DEFAULT);
这更安全还是没用?
P.S。:我是php的新手
答案 0 :(得分:5)
这会阻止您验证密码,因为您无法重现第一个哈希,因为您已经丢弃了第一个哈希的随机盐。相反,为了提高单个哈希的安全性,只需调整其成本因子:
password_hash($password, PASSWORD_DEFAULT, ['cost' => 12])
成本越高,散列的次数越多。选择一个不会过度减慢过程的成本,但也不会太低。实际上,随着更好的服务器硬件可用,您应该随着时间的推移不断增加成本因素,并使用更强大的算法重新扫描用户密码。这具体是password_needs_rehash
的用途。
答案 1 :(得分:-2)
我认为没有用,因为一旦打破它就不可能知道真正的价值是什么......至少在说起话题。
我建议使用像sha512或ripemd320这样的强哈希函数,因为没有太多公开的可用数据库存储散列密码。
如果您想了解更多信息,我已经在stackoverflow上找到了一个老答案:PHP dehashing the password