HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/demo.sports-crowd.com/app/Http/Controllers/CityPrimeController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class CityPrimeController extends Controller
{
    private $method = "AES-256-CBC";
    private $key;
    private $iv;

    // Genera un token en base al JSON User Information.
    // Structure:
    // {
    //     first_name: 'Santiago', #required
    //     last_name: 'Barcenas', #optional
    //     email: 'jsbarcenas@gmail.com', #required
    //     phone: 3003140000, #required
    // }
    function createToken(Request $request){
        $userInformation = $request->getContent();

        $this->key = config("city_prime.city_prime_key");
        $this->iv = config("city_prime.city_prime_iv");

        return $this->encrypt($userInformation);
    }

    function strtohex($x)
    {
        $s='';
        foreach (str_split($x) as $c) $s.=sprintf("%02X",ord($c));
        return($s);
    }

    function encrypt($plaintext) {
        $keyHex = hex2bin($this->key);
        $ivHex = hex2bin($this->iv);

        $ciphertext = openssl_encrypt($plaintext, $this->method, $keyHex, OPENSSL_RAW_DATA, $ivHex);

        $data = array('status' => 'success', 'token' => $this->strtohex($ciphertext));
        return response()->json($data, 200);
    }
}