- substr: documentation ( source)
- var_dump: documentation ( source)
- base64_decode: documentation ( source)
- parse_str: documentation ( source)
- trim: documentation ( source)
<?php
class EPDDecryptor {
private $key;
private $cipher;
private $mode;
private $iv;
private $ipnData;
public function __construct($securityCode)
{
$this->key = $securityCode;
$this->iv = 'payza';
$this->cipher = MCRYPT_3DES;
$this->mode = MCRYPT_MODE_CBC;
}
public function decrypt($cypherText)
{
//Decode the base64 encoded text
$cypherText = base64_decode($cypherText);
//Complete the key
$key_add = 24-strlen($this->key);
$this->key .= substr($this->key,0,$key_add);
// use mcrypt library for encryption
$decryptedText = mcrypt_decrypt($this->cipher, $this->key, $cypherText, $this->mode, $this->iv);
parse_str(trim($decryptedText,"\x00..\x1F"),$this->ipnData);
return $this->ipnData;
}
}
$a = new EPDDecryptor('Q3pCYA8MoKfGDrO1');
var_dump($a->decrypt('KJq6A9FdFIQTUE8h0zWnE3s7EN%2bENguiZvQ2bzpm2yOl9gKSEwjPM0gb8ugblKYYm3GqTN1eWXuZNsuZV8NPpmtwsum5gDbFjyDruNQcAtCGcL3ZGdElB2HEyrkQZx%2bXVrEyJlgNTHoEKh3aQhnwxZm5q0Kld%2biQA86JIhny77RAEXrOR86dO8fTZcB3D2rNk96rMOIc1w%2fGL%2f5CzjLobi%2fGC8rf%2bJNL9JD92Ja5Ji49XR%2fQ6jP2xU33qjZ2f7ZJiBJ5RG82XqlfhiS4TxLXox5xdUIm1tkYGCTndNvArgiwTVhzLvG4mgEJgC8EBAYbJr4Q9oI683KsQJyvtoRxbezzY7vdOByJgutOCPxue2%2fg6DpOds3EjbZgWyLVKsDU6FIDIgVL9l7ErQ0P%2bj3u%2fVH7jnVHC7syJeHE5gzEnGJ0sY4oWbW9GpA56F1V49RirWBONDUELftvf1upTk3%2fneCPPLvv%2bg6LG2z%2fPIAPTh45gxDdgnrE99xT54qoaWZGnWlkOI7OyDrrAfC3yTtKm00n7Y4pLlLvGjYJTa2NBsHcvXcKjs4cyhKj4zKyAkoINWfmgJya%2fCW1DNw6guv%2fdbmMiIqX%2fQ7uqJEd8qQkhS8VnDylMoc%2bAvsxrkO%2fkoF6RIvXCqSAjsEfKuX9t3900ugKNODjfTBiuymQjRaGP%2fu6e9%2f77JYK%2fJmVqbipahF62rda074qxTIFpeX21syQYoGfbA4y7hTiAHR1CSIF1qU5eppsqeKjJ%2b3iJz1zwfP%2fzIRnEz5d0nrseeA%2b2vDlk%2fFI%2fn6bBAFWxCzTQIYZjQvNQg%2f0W141DoVXCmtweivRADo41LEwobZmR9YJ5rQqS7vrLZ2gnqRv1r2uY8Z6jlJYBDLKdBOwYswNu7k%2bzrOMyM6RsFDz2wicH5FSBpMc45XkuQkB5vgF8NBMhzfoDM0NHAjsRTGDe7a074JgqYDonP%2bZu3TVT01RFCXwNBJ8L%2b1Va4fDrvOkHZnq1uHFAZT9SUrJpkDa2Mtt5WrJ8iM6U0mupQjgCMcZGDIpWBULiq7Bplt2JSykfiNCOe9Y0qg%3d'));