2

我正在尝试在 symfony2 应用程序中使用 pbkdf2 作为密码。但它不起作用。如果我更改为纯文本或 sha1 登录有效。下面是我正在使用的代码。我究竟做错了什么?

安全.yml

security:
    encoders:
        Acme\UserBundle\Entity\User:
            algorithm:            pbkdf2
            hash_algorithm:       sha512
            encode_as_base64:     true
            iterations:           1000

设置密码的代码

$encoder = $this->get('security.encoder_factory')->getEncoder($user);
$password = $encoder->encodePassword('pass', $user->getSalt());
$user->setPassword($password);
4

1 回答 1

3

我自己能找到原因。密码字段长度为 40,pbkdf2 生成的密码超过 40 个字符。所以存储在数据库中的密码被截断了。我增加了字段长度以使其工作。

于 2013-11-02T15:17:57.300 回答