bcrypt + str_random会生成安全密码吗?

时间:2016-02-16 17:38:20

标签: php security laravel laravel-5.1

我正在为我的应用程序的初次使用者创建随机密码。

$password = bcrypt(str_random(12));是否是在Laravel 5.1中生成密码的加密安全方式?

我可以从这个答案中看到:Laravel str_random() or custom function? str_random()是不够的。将它包装在bcrypt()帮助吗?

此外,是否存在通用或普遍接受的密码生成安全标准?

2 个答案:

答案 0 :(得分:0)

对于标准用途,应该没问题。更大的问题是您将向用户发送/显示密码。通常,密码应由用户在密码字段中写入(使用***),然后进行散列并保存。

答案 1 :(得分:0)

使用$password = str_random(12);

在幕后,它会尝试使用openssl_random_pseudo_bytesquickRandom(请参阅Laravel str_random() or custom function?)。

您将生成非常难以猜测的密码。比实际用户选择的更难猜测(密码1234)。

您提供的链接介绍了使该功能不适合生成唯一用户ID的其他属性。

同样使用bcrypt不会为密码添加任何熵。我知道你的密码生成功能有一个漏洞,允许我猜测它的输出,然后我需要做的就是输出bcrypt。关键是对于这个特定用例,bcrypt不会增加价值。