当前位置:  开发笔记 > 编程语言 > 正文

FOSUserBundle BCryptPasswordEncoder salting

如何解决《FOSUserBundleBCryptPasswordEncodersalting》经验,为你挑选了0个好方法。

升级到php7后,BCryptPasswordEncoder会抛出以下错误,例如在使用FOSUserBundle标准注册页面时注册:

"在C:\ xampp\htdocs\ascentary\vendor\symfony\symfony\src\Symfony\Component\Security\Core\Encoder\BCryptPasswordEncoder.php第81行"C:不推荐使用'salt'选项来使用password_hash XAMPP\htdocs中\ testproject \供应商\贝哈特\贝哈特的\ src \贝哈特\试验工作\电话\处理器\ RuntimeCallHandler".

我已经跟踪了这个问题,问题是FOS UserManager类,它调用:

/**
 * {@inheritDoc}
 */
public function updatePassword(UserInterface $user)
{
    if (0 !== strlen($password = $user->getPlainPassword())) {
        $encoder = $this->getEncoder($user);
        $user->setPassword($encoder->encodePassword($password, $user->getSalt()));
        $user->eraseCredentials();
    }
}

在这里传递$ user-> getSalt()会抛出错误,因为在php7中,不再允许您将自定义salt传递给bcrypt encoding/password_hash函数.另外,我在基本fos用户实体中看到一个问题,因为在其构造函数中,salt设置为:

$this->salt = base_convert(sha1(uniqid(mt_rand(), true)), 16, 36);

问题:

(1)如何解决我上面发布的错误?也许覆盖了UserManager,或者是否有fos提供的解决方案?

(2)如何正确保护盐,即自动生成?

(3)是否还需要其他更新,例如更新ircmaxell lib?

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有