[英]Symfony 3 custom user provider using Bcrypt
在阅读https://symfony.com/doc/current/security/custom_provider.html#create-a-user-class/时 ,我看到的所有示例都实现了Symfony\\Component\\Security\\Core\\User\\UserInterface
User
类的Symfony\\Component\\Security\\Core\\User\\UserInterface
。 该接口定义了一个用于盐场的方法-但我想将Bcrypt用于哈希算法。
在我的app/config/security.yml
文件中,我有:
encoders:
AppBundle\Security\User\WebserviceUser:
algorithm: bcrypt
cost: 12
链接的文件说:
如果getSalt()不返回任何内容,则使用您在security.yml中指定的算法对提交的密码进行简单编码。 如果指定了盐,则将创建以下值,然后将其散列...
这是否意味着如果我指定要使用Bcrypt,那么在用户数据库表中就不需要盐字段(因为在用Bcrypt散列时盐与密码的其余部分位于同一字符串中)?
如果是这种情况,那么我猜我可以将getSalt()
方法留空,这样就不会指定盐,而将使用security.yml中的算法。
我的上述假设正确吗? 如果不是,我该如何使用bcrypt哈希密码来实现用户提供程序?
我正在使用Symfony 3.1.6
如创建您的第一个用户所述 :
您需要使用Salt属性吗?
如果使用bcrypt,则不会。 否则,是的。 所有密码都必须用一个盐进行哈希处理,但是bcrypt在内部执行此操作。 由于本教程确实使用bcrypt,因此
getSalt()
方法只能return null
(不使用)。 如果使用其他算法,则需要在用户实体中取消注释盐线,并添加一个持久化的盐属性。
如果要使用Bcrypt,只需在getSalt()
方法中return null
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.