2

symfony2 アプリケーションのパスワードに pbkdf2 を使用しようとしています。しかし、うまくいきません。プレーンテキストまたは sha1 ログインに変更すると機能します。以下は私が使用しているコードです。私は何を間違っていますか?

security.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 に答える