Как зашифровать перед вызовом SagePage - PullRequest
0 голосов
/ 04 января 2019

Как мне выполнить шифрование AE5 в PHP при вызове SagePay? Я не могу найти это в Демо, и я не делал AE5 раньше. Спасибо

1 Ответ

0 голосов
/ 12 марта 2019

Вы можете попробовать использовать это:

function addPKCS5Padding($input)
{
     $blockSize = 16;
     $padd = "";
     $length = $blockSize - (strlen($input) % $blockSize);
     for ($i = 1; $i <= $length; $i++)
{
     $padd .= chr($length);
}
     return $input . $padd;
}



function removePKCS5Padding($input)
{
    $blockSize = 16;
    $padChar = ord($input[strlen($input) - 1]);
    $unpadded = substr($input, 0, (-1) * $padChar);
    return $unpadded;
}


function encryptAes($string, $key)
{
    $string = addPKCS5Padding($string);
    $crypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $string, MCRYPT_MODE_CBC, $key);
    return  "@".strtoupper(bin2hex($crypt));
}


function decryptAes($strIn, $password)
{

    $strIn = substr($strIn,1)
    $strInitVector = $password;
    $strIn = pack('H*', $hex);
    $string = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $password, $strIn, MCRYPT_MODE_CBC,$strInitVector);
    return removePKCS5Padding($string);
}
...