我正在使用:
FOSuserbundle安装得很好,就像魅力一样。我注意到在我的数据库中,在users表中,列" salt"永远是空的:
以下是我的security.yml文件的摘录:
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
为了记录,我使用命令" fos:user:create"添加了2个用户。
这是正常的吗?
答案 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);
}