Как зашифровать пароли пользователей без безопасности Symfony - PullRequest
0 голосов
/ 01 февраля 2019

Я использую Symfony 4.0.Я хочу зашифровать свои пароли пользователей с помощью sha256, когда они зарегистрированы.Я не хочу использовать безопасность Symfony, но если нет другого способа, я буду его использовать.

Я пробовал с md5 и работал, но с sha256 выдает исключение .

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 - нет.

1 Ответ

0 голосов
/ 01 февраля 2019

sha256 не является константой, вы должны указать это как строку.Измените эту строку:

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

на

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

Обратите внимание, что я добавил кавычки aroud sha256.

...