Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在没有symfony安全性的情况下加密用户密码_Php_Symfony_Controller_Sha256 - Fatal编程技术网

Php 如何在没有symfony安全性的情况下加密用户密码

Php 如何在没有symfony安全性的情况下加密用户密码,php,symfony,controller,sha256,Php,Symfony,Controller,Sha256,我正在使用Symfony 4.0。我想在注册用户密码时使用sha256对其进行加密。我不想使用Symfony security,但如果没有其他方法,我会使用它 我试过使用md5,但使用sha256会给我一个 那是我的控制器 public function register(Request $request) { $user = new User(); $form = $this->createForm(UserType::class, $user); $for

我正在使用Symfony 4.0。我想在注册用户密码时使用sha256对其进行加密。我不想使用Symfony security,但如果没有其他方法,我会使用它

我试过使用md5,但使用sha256会给我一个

那是我的控制器

 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不是一个常量,您必须将其作为字符串提供。更改此行:

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


注意,我在sha256的周围添加了引号“但是sha256抛出了一个异常”——异常在哪里?请编辑您的问题以添加异常消息。我添加了异常文本和屏幕截图作为链接
$user->setPassword(hash(sha256, $user->getPassword()));
$user->setPassword(hash("sha256", $user->getPassword()));