laravel 5.2 默认的密码加密,怎么加点盐?
顺便弱弱的问一下:盐是啥?
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
bcrypt生成的密码hash中已经包含盐了
盐是用于防止从彩虹表中反查出密码的随机字符串
没有盐的情况: 用户密码是123456, 傻程序员就直接在数据库保存hash('123456'), 坏人拿到数据库后就可以直接从这个hash反查出密码
有盐的情况: 用户仍然用123456, 正常程序员在数据库保存hash('123456'+盐)和盐. 坏人拿到数据库后很难从这个hash还原出密码 (暴力破解仍然可能, 但是至少把低成本的彩虹表废掉了)