【问题标题】:How to encrypt user passwords without symfony security如何在没有 symfony 安全性的情况下加密用户密码
【发布时间】:2019-02-01 15:51:30
【问题描述】:

我正在使用 Symfony 4.0。我想在注册时使用 sha256 加密我的用户密码。我不想使用 Symfony 安全性,但如果没有其他方法我会使用它。

我尝试使用 md5 并工作,但使用 sha256 会抛出一个 exception.

Warning: Use of undefined constant sha256 - assumed 'sha256' (this will 
throw an Error in a future version of PHP)

那是我的控制器。

 public function register(Request $request)
{
    $user = new User();
    $form = $this->createForm(UserType::class, $user);

    $form->handleRequest($request);
    if ($form->isSubmitted() && $form->isValid()) {
        $user = $form->getData();
        $entityManager = $this->getDoctrine()->getManager();
        //$user->setPassword(hash(sha256,$user->getPassword()));
        $user->setPassword(md5($user->getPassword()));
        $entityManager->persist($user);
        $entityManager->flush();
        $flashbag = $this->get('session')->getFlashBag();
        $flashbag->add("SuccessfullRegister", "You successfully registered in our site!");
        return $this->redirectToRoute('EventsAndPeople');
    }
    return $this->render('home/RegisterForm.html.twig', array(
        'form' => $form->createView(),
    ));
}

由于某种原因,md5 有效,但 sha256 无效。

【问题讨论】:

  • “但使用 sha256 会引发异常” - 异常在哪里?请编辑您的问题以添加异常消息。
  • 我添加了异常的文本和它的屏幕截图作为链接

标签: php symfony controller sha256


【解决方案1】:

sha256 不是常量,您必须将其作为字符串提供。更改此行:

$user->setPassword(hash(sha256, $user->getPassword()));

$user->setPassword(hash("sha256", $user->getPassword()));

请注意,我在sha256 周围添加了引号。

【讨论】:

    猜你喜欢
    • 2018-12-14
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多