Php symfony2和symfony1应用程序使用相同的密码加密

Php symfony2和symfony1应用程序使用相同的密码加密,php,security,symfony,symfony-1.4,Php,Security,Symfony,Symfony 1.4,我有一个带有sfGuardUser插件的symfony1应用程序。我需要在新的symfony2应用程序中使用相同的数据库 我应该如何定义密码编码器,使其与symfony1编码的密码匹配?如果您没有提供不同的编码算法,那么symfony1.x将使用sha1($salt.$rawPassword)。因此,您的密码编码器应该如下所示: use Symfony\Component\Security\Core\Encoder\PasswordEncoderInterface; class Passwor

我有一个带有sfGuardUser插件的symfony1应用程序。我需要在新的symfony2应用程序中使用相同的数据库


我应该如何定义密码编码器,使其与symfony1编码的密码匹配?

如果您没有提供不同的编码算法,那么symfony1.x将使用
sha1($salt.$rawPassword)
。因此,您的密码编码器应该如下所示:

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

class PasswordEncoder implements PasswordEncoderInterface
{
    public function encodePassword($raw, $salt)
    {
        return sha1($salt.$raw);
    }

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

祝你好运

你只需要从sfGuard应用相同的规则,你就可以为我节省一天调试非常旧的项目的时间。