1

我在用着 :

  • Symfony 3.4
  • FOSUserBundle 2

FOSuserbundle 安装得很好,工作起来就像一个魅力。我注意到在我的数据库中,在 users 表中,“salt”列始终为空:

在此处输入图像描述

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

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

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

这是正常的吗?

4

1 回答 1

6

是的,这是正常的,因为使用bcrypt盐包含在散列密码中。

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

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

如果省略,password_hash() 将为每个散列的密码生成一个随机盐。这是预期的操作模式,从 PHP 7.0.0 开始,盐选项已被弃用。


您可以在源代码中看到行为:

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

if ($encoder instanceof BCryptPasswordEncoder) {
    $user->setSalt(null);
}
于 2018-01-22T13:48:02.843 回答