src/Controller/DefaultController.php line 32

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Form\VerificarType;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. class DefaultController extends AbstractController
  9. {
  10.     /**
  11.      * Página de inicio del sistema
  12.      *
  13.      * @Route("/", name="homepage", methods={"GET"})
  14.      * @return Response
  15.      */
  16.     public function index(): Response
  17.     {
  18.         return $this->render('default/index.html.twig');
  19.     }
  20.     /**
  21.      * Verificar cadena
  22.      *
  23.      * @Route("/common/verificar", name="verificar_consulta", methods={"GET", "POST"})
  24.      * @param Request $request
  25.      * @return Response
  26.      */
  27.     public function verificar(Request $request): Response
  28.     {
  29.         $form $this->createForm(VerificarType::class);
  30.         $form->handleRequest($request);
  31.         if ($form->isSubmitted() && $form->isValid()) {
  32.             $cadena64 $form['cadena']->getData();
  33.             // Decodificación y verificación de cadena
  34.             $cadenaHash base64_decode($cadena64);
  35.             $comparacion explode('^'$cadenaHash);
  36.             if (empty($comparacion[1])) {
  37.                 $this->addFlash('danger''La cadena de verificación esta corrupta.');
  38.                 return $this->renderForm('default/verificar.html.twig', [
  39.                     'form' => $form
  40.                 ]);
  41.             }
  42.             $resultado hash_equals(hash('sha512'$comparacion[0]), $comparacion[1]);
  43.             if ($resultado) {
  44.                 $this->addFlash('success''La cadena de verificación es correcta.');
  45.                 $data str_replace('+'' '$comparacion[0]);
  46.                 $data explode('||'$data);
  47.                 return $this->renderForm('default/verificar.html.twig', [
  48.                     'data' => $data,
  49.                     'form' => $form
  50.                 ]);
  51.             } else {
  52.                 $this->addFlash('danger''La cadena de verificación presenta alteraciones.');
  53.             }
  54.         }
  55.         return $this->renderForm('default/verificar.html.twig', [
  56.             'form' => $form
  57.         ]);
  58.     }
  59. }