FOSUserBundle - 如何应用密码盐?

时间:2014-05-09 21:09:24

标签: symfony fosuserbundle salt

由于我无法解释的原因(NDA ......是的,我知道这听起来很粗略),我需要能够在正常的Symfony / FOSUserBundle登录流程之外将用户登录到我的系统。为了做到这一点,我需要知道FOSUserBundle如何将其盐应用于普通密码,我还没有找到它。因此,非常感谢正确方向的推动。

我的编码器目前设为:

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

2 个答案:

答案 0 :(得分:3)

您的问题无法得到准确答案,因为Symfony中不仅有一个密码编码器。它主要取决于您使用的配置,但为了给您直接指导,您应该查看位于Symfony\Component\Security\Core\Encoder命名空间下的编码器并阅读代码。然后,您应该了解盐和密码是如何组合在一起的。

答案 1 :(得分:1)

您可能正在寻找:

http://symfony.com/doc/current/book/security.html#determining-the-hashed-password

$factory = $this->get('security.encoder_factory');
$user = new Acme\UserBundle\Entity\User();   

$encoder = $factory->getEncoder($user);
$password = $encoder->encodePassword('plainpassword', $user->getSalt());
$user->setPassword($password);