Symfony / FOSuserBundle:salt为空?

时间:2018-01-22 13:41:47

标签: symfony fosuserbundle symfony-3.4

我正在使用:

  • Symfony 3.4
  • FOSUserBundle 2

FOSuserbundle安装得很好,就像魅力一样。我注意到在我的数据库中,在users表中,列" salt"永远是空的:

enter image description here

以下是我的security.yml文件的摘录:

security:
    encoders:
        FOS\UserBundle\Model\UserInterface: bcrypt

为了记录,我使用命令" fos:user:create"添加了2个用户。

这是正常的吗?

1 个答案:

答案 0 :(得分:4)

是的,这是正常的,因为使用bcrypt时,盐包含在哈希密码中。

参考:https://php.net/manual/password.constants.php#constant.password-bcrypt

  

salt (字符串) - 手动提供在散列时使用的salt   密码。请注意,这将覆盖并防止盐的存在   自动生成。

     

如果省略,将通过password_hash()生成随机盐   每个密码都是哈希。这是预期的操作模式,并且是   PHP 7.0.0盐选项已被弃用。

您可以在source中看到行为:

// FOSUserBundle/Util/PasswordUpdater.php [Line 43]

if ($encoder instanceof BCryptPasswordEncoder) {
    $user->setSalt(null);
}