如何在symfony3中将密码编码为SHA512?

时间:2018-01-16 21:14:35

标签: symfony hash passwords sha512

我们将用户存储在数据库中,密码存储为SHA512散列字符串。格式为:$6$rounds=5000$[salt]$[hash]我们使用一个旧的,自编写的php方法,crypt()

现在我想用symfony 3.3.1编写一个新的应用程序,并在security.yml中配置bcrypt算法:

encoders:
    AppBundle\Entity\User:
        algorithm: bcrypt

登录工作正常。我还尝试保存一个新用户并对密码进行编码,如下所示:

public function register(Request $request, UserPasswordEncoderInterface $encoder)
{
    $user = User();

    $form = $this->get('form.factory')->createNamed('register', UserRegistrationForm::class, $user, [
        'action' => $this->generateUrl('register')
    ]);

    $form->handleRequest($request);
    if ($form->isSubmitted() && $form->isValid()) {
        $password = $encoder->encodePassword($user, $user->getPassword());
        $user->setPassword($password);
        ...
}

但密码未按所需格式编码,我无法以新创建的用户身份登录。有关如何配置symfony3以$6$rounds=5000...格式编码密码的任何提示?或者我是否必须为此编写自定义密码编码器?

0 个答案:

没有答案