所以,我正在运行一个用Laravel 5.1创建的项目,一个人告诉我,密码不安全,比如哈希没有使用等等。但是我可以在这个函数中清楚地看到密码是加密的:
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
密码也作为bcrypted存储在DB中。我应该担心他的话吗?
答案 0 :(得分:1)
默认Laravel Auth要求密码为bcrypt
,正如您在代码中所示。 bcrypt
是行业标准的单向密码哈希,非常好。
如果您自己进行身份验证,我们无法控制您处理密码哈希的方式。但默认的Laravel Auth是安全的。
答案 1 :(得分:1)
如果您没有使用Laravel的内置身份验证,请使用Laravel的Hash类。 Hash::make('$data['password']')
。但在你的情况下,它看起来很稳定,你不必再担心哈希了。
答案 2 :(得分:0)
您可以阅读有关应用程序密钥的https://laravel.com/docs/5.1/installation#configuration。 由于bcrypt,您只能解密加密的密码。
我并不是说它非常安全,但即使有人知道 bcrypt 如何运作,如果他们不知道加密密钥,他们也会很难解密它。
因此,如果您没有使用php artisan key:generate
配置文件,请务必.env
。