如何将sha1()密码转换为FOSUserBundle?

时间:2013-01-21 09:37:02

标签: symfony doctrine-orm fosuserbundle

我有遗留应用程序,使用sha1()函数加密密码,无盐。

现在该网站正在转换为Symfony2和FOSUserBundle,如何将它们转移到新数据库?

3 个答案:

答案 0 :(得分:2)

我有同样的问题

只需覆盖@iamdto

所解释的编码器
# app/config/security.yml
security:
    encoders:
        FOS\UserBundle\Model\UserInterface: 
           id: your.custom.encoder

你的课应该是

use Symfony\Component\Security\Core\Encoder\PasswordEncoderInterface;

class CustomEncoder implements PasswordEncoderInterface
{

    public function encodePassword( $raw, $salt ) {
        //do not use salt here
        return sha1($raw);
    }

    public function isPasswordValid( $encoded, $raw, $salt ) {
        return $encoded === $this->encodePassword( $raw, $salt );
    }
}

你应该添加一个列"版本"获取旧用户并在下次登录时更新其信息

答案 1 :(得分:1)

你试过了吗?

# app/config/security.yml
security:
    encoders:
        FOS\UserBundle\Model\UserInterface: sha1

你也应该看看这些参考文献:

答案 2 :(得分:1)