在阅读https://symfony.com/doc/current/security/custom_provider.html#create-a-user-class/时,我看到的所有示例都实现Symfony\Component\Security\Core\User\UserInterface
了User
该类。这个接口为盐场定义了一个方法——但我想使用 Bcrypt 作为散列算法。
在我的app/config/security.yml
文件中,我有:
encoders:
AppBundle\Security\User\WebserviceUser:
algorithm: bcrypt
cost: 12
链接的文件说:
如果 getSalt() 什么都不返回,那么提交的密码只是使用您在 security.yml 中指定的算法进行编码。如果指定了盐,则创建以下值,然后散列...
这是否意味着如果我指定使用 Bcrypt,那么我不需要用户数据库表中的 salt 字段(因为当使用 Bcrypt 散列时,salt 与密码的其余部分位于相同的字符串中)?
如果是这种情况,那么我猜我可以只留下getSalt()
一个空主体的方法,这样就不会指定盐,并且会使用 security.yml 中的算法。
我的上述假设是否正确?如果不是,我如何使用 bcrypt 来实现用户提供程序来散列密码?
我正在使用 Symfony 3.1.6