0

I would like to transform the code below code PHP 5.6 to PHP 7.3, We are more grateful to that person who provides us some suggestions on learning encryption in PHP on a more detailed level so we can try to convert that code itself.

function generateRandomString($length = 10)
{
    
    $characters       = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString     = '';
    for($i = 0; $i < $length; $i++)
    {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    
    return $randomString;
}

function strToHex($string)
{
    
    $hex = '';
    for($i = 0; $i < strlen($string); $i++)
    {
        $ord     = ord($string[$i]);
        $hexCode = dechex($ord);
        $hex     .= substr('0' . $hexCode, -2);
    }
    
    return strToUpper($hex);
}

function AESencrypt($decrypted, $password = 'password', $salt = 'salt_key')
{
    
    $block     = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
    $padding   = $block - (strlen($decrypted) % $block);
    $decrypted .= str_repeat(chr($padding), $padding);
    $encrypted = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $password, $decrypted, MCRYPT_MODE_CBC, $password));
    $encrypted = hash('SHA256', $encrypted . '|' . $salt, true);
    
    return strToHex($encrypted);
}

$agentid   = "EU01EU22INB000";
$mercode   = "BPP";
$username  = "BPP_01";
$userpass  = "BPP_01";
$storecode = "BPP_01";
$ipaddr    = "103.235.104.168";
$billerid    = '00000NATTQ';
$bbpstel     = 'QH01WD3737';
$bbpstel1    = $bbpstel;
$stringParts = str_split($bbpstel1);
sort($stringParts);
$sortval = implode('', $stringParts);
$sort = $sortval;
$Billfetch = "BillPay" . generateRandomString();

$hashkey   = AESencrypt($Billfetch . "|" . $mercode . "|" . $agentid . "|" . $billerid . "|" . $sort, "password", "salt_key");
echo $Billfetch."----".$hashkey."<br/>";
exit;
Olivier
  • 13,283
  • 1
  • 8
  • 24
Chirag Pipariya
  • 445
  • 5
  • 13
  • Above mentioned parameter in the variable, it's for example only, which is now the right data. – Chirag Pipariya Aug 26 '21 at 11:12
  • 2
    If you are looking for possible alternatives to the deprecated _mcrypt_, this question has already been answered here: [mcrypt is deprecated, what is the alternative?](https://stackoverflow.com/questions/41272257/mcrypt-is-deprecated-what-is-the-alternative) – Topaco Aug 26 '21 at 11:16

0 Answers0