gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 03:01:23 25 4
gpt4 key购买 nike

我有一个遗留应用程序,它使用 sha1() 函数对密码进行加密,没有加盐。

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

最佳答案

我遇到了同样的问题

就像@iamdto 解释的那样覆盖编码器

# app/config/security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface:
id: your.custom.encoder

你的类(class)应该是

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 );
}
}

您应该添加一个“版本”列以获取旧用户并在下次登录时更新他们的信息

关于symfony - 如何将 sha1() 密码转换为 FOSUserBundle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14435820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com