我有遗留应用程序,使用sha1()
函数加密密码,无盐。
现在该网站正在转换为Symfony2和FOSUserBundle,如何将它们转移到新数据库?
答案 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)