调用SagePage之前如何加密

时间:2019-01-04 11:24:13

标签: php sagepay

调用SagePay时,如何在PHP中进行AE5加密?我无法在演示中找到它,并且之前没有做过AE5。谢谢

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此功能:

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);
}