我正在为我的应用程序的初次使用者创建随机密码。
$password = bcrypt(str_random(12));
是否是在Laravel 5.1中生成密码的加密安全方式?
我可以从这个答案中看到:Laravel str_random() or custom function? str_random()
是不够的。将它包装在bcrypt()
帮助吗?
此外,是否存在通用或普遍接受的密码生成安全标准?
答案 0 :(得分:0)
对于标准用途,应该没问题。更大的问题是您将向用户发送/显示密码。通常,密码应由用户在密码字段中写入(使用***),然后进行散列并保存。
答案 1 :(得分:0)
使用$password = str_random(12);
在幕后,它会尝试使用openssl_random_pseudo_bytes
或quickRandom
(请参阅Laravel str_random() or custom function?)。
您将生成非常难以猜测的密码。比实际用户选择的更难猜测(密码1234)。
您提供的链接介绍了使该功能不适合生成唯一用户ID的其他属性。
同样使用bcrypt不会为密码添加任何熵。我知道你的密码生成功能有一个漏洞,允许我猜测它的输出,然后我需要做的就是输出bcrypt。关键是对于这个特定用例,bcrypt不会增加价值。