Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
$_F=__FILE__;$_X='P1hmP1BRUF12Kl1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1t..
Decoded Output download
?><?php
/*
=====================================================
DataLife Engine - by SoftNews Media Group
-----------------------------------------------------
https://dle-news.ru/
-----------------------------------------------------
Copyright (c) 2004-2023 SoftNews Media Group
=====================================================
This code is protected by copyright
=====================================================
File: recaptcha.php
-----------------------------------------------------
Use: Captcha Services
=====================================================
*/
class ReCaptchaResponse
{
public $success;
public $errorCodes;
}
class ReCaptcha
{
private $_siteVerifyUrl = "https://www.google.com/recaptcha/api/siteverify?";
private $_secret;
private $_score = '0.5';
private $_hcaptha = false;
private $_turnstile = false;
function __construct($secret)
{ global $config;
$this->_secret=$secret;
if( $config['allow_recaptcha'] == 3 ) {
$this->_siteVerifyUrl = "https://hcaptcha.com/siteverify?";
$this->_hcaptha = true;
}
if ($config['allow_recaptcha'] == 4) {
$this->_siteVerifyUrl = "https://challenges.cloudflare.com/turnstile/v0/siteverify";
$this->_turnstile = true;
}
if( isset($config['recaptcha_score']) AND floatval($config['recaptcha_score']) > 0 AND floatval($config['recaptcha_score']) < 1) {
$this->_score = floatval($config['recaptcha_score']);
} else $this->_score = floatval($this->_score);
}
private function _encodeQS($data)
{
$req = "";
foreach ($data as $key => $value) {
$req .= $key . '=' . urlencode(stripslashes($value)) . '&';
}
// Cut the last '&'
$req=substr($req, 0, strlen($req)-1);
return $req;
}
private function _submitHTTPGet($path, $data)
{
$req = $this->_encodeQS($data);
$response = file_get_contents($path . $req);
return $response;
}
function _submitHttpPost($url, $data)
{
if (function_exists('curl_init')) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
} else {
$options = array(
'http' => array(
'header' => 'Content-type: application/x-www-form-urlencoded',
'method' => 'POST',
'content' => http_build_query($data)
)
);
$context = stream_context_create($options);
$response = file_get_contents($url, false, $context);
}
return $response;
}
/**
* Calls the reCAPTCHA siteverify API to verify whether the user passes
* CAPTCHA test.
*
* @param string $remoteIp IP address of end user.
* @param string $response response string from recaptcha verification.
*
* @return ReCaptchaResponse
*/
public function verifyResponse($remoteIp, $response)
{
// Discard empty solution submissions
if ($response == null || strlen($response) == 0) {
$recaptchaResponse = new ReCaptchaResponse();
$recaptchaResponse->success = false;
$recaptchaResponse->errorCodes = 'missing-input';
return $recaptchaResponse;
}
if ( $this->_turnstile ) {
$getResponse = $this->_submitHttpPost(
$this->_siteVerifyUrl,
array(
'secret' => $this->_secret,
'remoteip' => $remoteIp,
'response' => $response
)
);
} else {
$getResponse = $this->_submitHttpGet(
$this->_siteVerifyUrl,
array(
'secret' => $this->_secret,
'remoteip' => $remoteIp,
'response' => $response
)
);
}
$answers = json_decode($getResponse, true);
$recaptchaResponse = new ReCaptchaResponse();
if (trim($answers['success']) == true) {
if( isset($answers['score']) AND $answers['score'] ) {
if( $this->_hcaptha ) {
if (floatval($answers['score']) <= $this->_score) {
$recaptchaResponse->success = true;
} else $recaptchaResponse->success = false;
} else {
if (floatval($answers['score']) >= $this->_score) {
$recaptchaResponse->success = true;
} else $recaptchaResponse->success = false;
}
} else $recaptchaResponse->success = true;
} else {
$recaptchaResponse->success = false;
$recaptchaResponse->errorCodes = $answers['error-codes'];
}
return $recaptchaResponse;
}
}
Did this file decode correctly?
Original Code
$_F=__FILE__;$_X='P1hmP1BRUF12Kl1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbV14TTVZNWU9Rkt4cjlvPTlLeC14biB4ODFGWVdLNlN4bEtPPTV4SX0xa1B4XS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXXhRWVlQUzp2dk9aSy05SzZTL31rdl0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLV14ejFQIH09b1FZeChnKXg8VFRoLTxUPEh4ODFGWVdLNlN4bEtPPTV4SX0xa1BdbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1deGpRPVN4ZzFPS3g9U3hQfTFZS2dZS094biB4ZzFQIH09b1FZXW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tXXhwPVpLOnh9S2c1UFlnUTUvUFFQXS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXXhKU0s6eHo1UFlnUTV4OEt9RT1nS1NdbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1tbW1dKnZdXWdaNVNTeHtLejVQWWdRNXtLU1AxOVNLXTddeHh4eFBrblo9Z3gkU2tnZ0tTUztdeHh4eFBrblo9Z3gkS319MX16MU9LUztdaV1dZ1o1U1N4e0t6NVBZZ1E1XTddeHh4eFB9PUU1WUt4JF9TPVlLMkt9PUYgSn1aeG14IlFZWVBTOnZ2NjY2L28xMW9aSy9nMUJ2fUtnNVBZZ1E1djVQPXZTPVlLRUt9PUYgPyI7XXh4eHhQfT1FNVlLeCRfU0tnfUtZO10JUH09RTVZS3gkX1NnMX1LeG14J1QvQyc7XQlQfT1FNVlLeCRfUWc1UFlRNXhteEY1WlNLO114eHh4UH09RTVZS3gkX1lrfTlTWT1aS3hteEY1WlNLO10JXV14eHh4Rms5Z1k9MTl4X19nMTlTWX1rZ1koJFNLZ31LWSldeHh4eDd4eHhvWjFuNVp4JGcxOUY9bztdCV14eHh4eHh4eCRZUT1TLVhfU0tnfUtZbSRTS2d9S1k7XQkJXQkJPUYoeCRnMTlGPW9zJzVaWjE2X31LZzVQWWdRNSdWeG1teEh4KXg3XQkJCSRZUT1TLVhfUz1ZSzJLfT1GIEp9WnhteCJRWVlQUzp2dlFnNVBZZ1E1L2cxQnZTPVlLRUt9PUYgPyI7XQkJCSRZUT1TLVhfUWc1UFlRNXhteFl9a0s7XQkJaV1deHh4eHh4eHg9RngoJGcxOUY9b3MnNVpaMTZffUtnNVBZZ1E1J1Z4bW14aCl4N114eHh4eHh4eHh4eHgkWVE9Uy1YX1M9WUsyS309RiBKfVp4bXgiUVlZUFM6dnZnUTVaWks5b0tTL2daMWtPRlo1fUsvZzFCdllrfTlTWT1aS3ZFVHZTPVlLRUt9PUYgIjtdeHh4eHh4eHh4eHh4JFlRPVMtWF9Za305U1k9Wkt4bXhZfWtLO114eHh4eHh4eGldXQkJPUYoeD1TU0tZKCRnMTlGPW9zJ31LZzVQWWdRNV9TZzF9SydWKXhVV014RloxNVlFNVooJGcxOUY9b3MnfUtnNVBZZ1E1X1NnMX1LJ1YpeFh4VHhVV014RloxNVlFNVooJGcxOUY9b3MnfUtnNVBZZ1E1X1NnMX1LJ1YpeGZ4YSl4N10JCQkkWVE9Uy1YX1NnMX1LeG14RloxNVlFNVooJGcxOUY9b3MnfUtnNVBZZ1E1X1NnMX1LJ1YpO10JCWl4S1pTS3gkWVE9Uy1YX1NnMX1LeG14RloxNVlFNVooJFlRPVMtWF9TZzF9Syk7XV14eHh4aV1deHh4eFB9PUU1WUt4Rms5Z1k9MTl4X0s5ZzFPS3Q4KCRPNVk1KV14eHh4N114eHh4eHh4eCR9SzN4bXgiIjtdeHh4eHh4eHhGMX1LNWdReCgkTzVZNXg1U3gkCksgeG1YeCRFNVprSyl4N114eHh4eHh4eHh4eHgkfUszeC9teCQKSyB4L3gnbSd4L3hrfVpLOWcxT0soU1l9PVBTWjVTUUtTKCRFNVprSykpeC94JyYnO114eHh4eHh4eGldeHh4eHh4eHh2dnh6a1l4WVFLeFo1U1l4JyYnXXh4eHh4eHh4JH1LM21Ta25TWX0oJH1LMyx4VCx4U1l9Wks5KCR9SzMpLWEpO114eHh4eHh4eH1LWWt9OXgkfUszO114eHh4aV1deHh4eFB9PUU1WUt4Rms5Z1k9MTl4X1NrbkI9WUdqakxJS1koJFA1WVEseCRPNVk1KV14eHh4N114eHh4eHh4eCR9SzN4bXgkWVE9Uy1YX0s5ZzFPS3Q4KCRPNVk1KTtdeHh4eHh4eHgkfUtTUDE5U0t4bXhGPVpLX29LWV9nMTlZSzlZUygkUDVZUXgveCR9SzMpO114eHh4eHh4eH1LWWt9OXgkfUtTUDE5U0s7XXh4eHhpXV14eHh4Rms5Z1k9MTl4X1NrbkI9WUdZWVBMMVNZKCRrfVoseCRPNVk1KV14eHh4N11deHh4eHh4eHg9RngoRms5Z1k9MTlfS0Q9U1lTKCdna31aXz05PVknKSl4N11deHh4eHh4eHh4eHh4JGdReG14Z2t9Wl89OT1ZKCk7XXh4eHh4eHh4eHh4eGdrfVpfU0tZMVBZKCRnUSx4ekp7ZXlMal9Ke2UseCRrfVopO114eHh4eHh4eHh4eHhna31aX1NLWTFQWSgkZ1EseHpKe2V5TGpfTHk4aix4YSk7XXh4eHh4eHh4eHh4eGdrfVpfU0tZMVBZKCRnUSx4ekp7ZXlMal9qY2xyeUpqLHhDKTtdeHh4eHh4eHh4eHh4Z2t9Wl9TS1kxUFkoJGdRLHh6SntleUxqX0x5OGpwY3JlTTgseFFZWVBfbms9Wk9fM2tLfSAoJE81WTUpKTtdeHh4eHh4eHh4eHh4Z2t9Wl9TS1kxUFkoJGdRLHh6SntleUxqX3tyakp7V2p7VVc4cHJ7LHhZfWtLKTtdXXh4eHh4eHh4eHh4eCR9S1NQMTlTS3hteGdrfVpfS0RLZygkZ1EpO114eHh4eHh4eHh4eHhna31aX2daMVNLKCRnUSk7XV14eHh4eHh4eGl4S1pTS3g3XV14eHh4eHh4eHh4eHgkMVBZPTE5U3hteDV9fTUgKF14eHh4eHh4eHh4eHh4eHh4J1FZWVAneG1YeDV9fTUgKF14eHh4eHh4eHh4eHh4eHh4eHh4eCdRSzVPS30neG1YeCd6MTlZSzlZLVkgUEs6eDVQUFo9ZzVZPTE5dkQtNjY2LUYxfUIta31aSzlnMU9LTycsXXh4eHh4eHh4eHh4eHh4eHh4eHh4J0JLWVExTyd4bVh4J0x5OGonLF14eHh4eHh4eHh4eHh4eHh4eHh4eCdnMTlZSzlZJ3htWHhRWVlQX25rPVpPXzNrS30gKCRPNVk1KV14eHh4eHh4eHh4eHh4eHh4KV14eHh4eHh4eHh4eHgpO11deHh4eHh4eHh4eHh4JGcxOVlLRFl4bXhTWX1LNUJfZzE5WUtEWV9nfUs1WUsoJDFQWT0xOVMpO114eHh4eHh4eHh4eHgkfUtTUDE5U0t4bXhGPVpLX29LWV9nMTlZSzlZUygka31aLHhGNVpTSyx4JGcxOVlLRFkpO114eHh4eHh4eGldXXh4eHh4eHh4fUtZa305eCR9S1NQMTlTSztdeHh4eGldXXh4eHh2KipdeHh4eHgqeHo1WlpTeFlRS3h9S3pVTGp6R1V4Uz1ZS0VLfT1GIHhVTGN4WTF4RUt9PUYgeDZRS1lRS314WVFLeGtTS314UDVTU0tTXXh4eHh4Knh6VUxqekdVeFlLU1kvXXh4eHh4Kl14eHh4eCp4QFA1fTVCeFNZfT05b3gkfUtCMVlLY1B4eHhjTHg1T099S1NTeDFGeEs5T3hrU0t9L114eHh4eCp4QFA1fTVCeFNZfT05b3gkfUtTUDE5U0t4eHh9S1NQMTlTS3hTWX09OW94Rn0xQnh9S2c1UFlnUTV4RUt9PUY9ZzVZPTE5L114eHh4eCpdeHh4eHgqeEB9S1lrfTl4e0t6NVBZZ1E1e0tTUDE5U0tdeHh4eHgqdl14eHh4UGtuWj1neEZrOWdZPTE5eEVLfT1GIHtLU1AxOVNLKCR9S0IxWUtjUCx4JH1LU1AxOVNLKV14eHh4N114eHh4eHh4eHZ2eE09U2c1fU94S0JQWSB4UzFaa1k9MTl4U2tuQj1TUz0xOVNdeHh4eHh4eHg9RngoJH1LU1AxOVNLeG1teDlrWlp4fHx4U1l9Wks5KCR9S1NQMTlTSyl4bW14VCl4N114eHh4eHh4eHh4eHgkfUtnNVBZZ1E1e0tTUDE5U0t4bXg5SzZ4e0t6NVBZZ1E1e0tTUDE5U0soKTtdeHh4eHh4eHh4eHh4JH1LZzVQWWdRNXtLU1AxOVNLLVhTa2dnS1NTeG14RjVaU0s7XXh4eHh4eHh4eHh4eCR9S2c1UFlnUTV7S1NQMTlTSy1YS319MX16MU9LU3hteCdCPVNTPTlvLT05UGtZJztdeHh4eHh4eHh4eHh4fUtZa305eCR9S2c1UFlnUTV7S1NQMTlTSztdeHh4eHh4eHhpXV0JCT1GeCh4JFlRPVMtWF9Za305U1k9Wkt4KXg3XV14eHh4eHh4eHh4eHgkb0tZe0tTUDE5U0t4bXgkWVE9Uy1YX1NrbkI9WUdZWVBMMVNZKF14eHh4eHh4eHh4eHh4eHh4JFlRPVMtWF9TPVlLMkt9PUYgSn1aLF14eHh4eHh4eHh4eHh4eHh4NX19NSAoXXh4eHh4eHh4eHh4eHh4eHh4eHh4J1NLZ31LWSd4bVh4JFlRPVMtWF9TS2d9S1ksXXh4eHh4eHh4eHh4eHh4eHh4eHh4J31LQjFZSz1QJ3htWHgkfUtCMVlLY1AsXXh4eHh4eHh4eHh4eHh4eHh4eHh4J31LU1AxOVNLJ3htWHgkfUtTUDE5U0tdeHh4eHh4eHh4eHh4eHh4eCldeHh4eHh4eHh4eHh4KTtdXXh4eHh4eHh4aXhLWlNLeDddXXh4eHh4eHh4eHh4eCRvS1l7S1NQMTlTS3hteCRZUT1TLVhfU2tuQj1ZR1lZUElLWShdeHh4eHh4eHh4eHh4eHh4eCRZUT1TLVhfUz1ZSzJLfT1GIEp9WixdeHh4eHh4eHh4eHh4eHh4eDV9fTUgKF14eHh4eHh4eHh4eHh4eHh4eHh4eCdTS2d9S1kneG1YeCRZUT1TLVhfU0tnfUtZLF14eHh4eHh4eHh4eHh4eHh4eHh4eCd9S0IxWUs9UCd4bVh4JH1LQjFZS2NQLF14eHh4eHh4eHh4eHh4eHh4eHh4eCd9S1NQMTlTSyd4bVh4JH1LU1AxOVNLXXh4eHh4eHh4eHh4eHh4eHgpXXh4eHh4eHh4eHh4eCk7XV14eHh4eHh4eGldCQldeHh4eHh4eHgkNTlTNkt9U3hteDBTMTlfT0tnMU9LKCRvS1l7S1NQMTlTSyx4WX1rSyk7XV14eHh4eHh4eCR9S2c1UFlnUTV7S1NQMTlTS3hteDlLNnh7S3o1UFlnUTV7S1NQMTlTSygpO114eHh4eHh4eD1GeChZfT1CKCQ1OVM2S31TcydTa2dnS1NTJ1YpeG1teFl9a0speDddCQkJPUYoeD1TU0tZKCQ1OVM2S31TcydTZzF9SydWKXhVV014JDU5UzZLfVNzJ1NnMX1LJ1Z4KXg3XQkJCQk9Rih4JFlRPVMtWF9RZzVQWVE1eCl4N10JCQkJCT1GeChGWjE1WUU1WigkNTlTNkt9U3MnU2cxfUsnVil4Zm14JFlRPVMtWF9TZzF9Syl4N10JCQkJCQkkfUtnNVBZZ1E1e0tTUDE5U0stWFNrZ2dLU1N4bXhZfWtLO10JCQkJCWl4S1pTS3gkfUtnNVBZZ1E1e0tTUDE5U0stWFNrZ2dLU1N4bXhGNVpTSztdCQkJCWl4S1pTS3g3XQkJCQkJPUZ4KEZaMTVZRTVaKCQ1OVM2S31TcydTZzF9SydWKXhYbXgkWVE9Uy1YX1NnMX1LKXg3XQkJCQkJCSR9S2c1UFlnUTV7S1NQMTlTSy1YU2tnZ0tTU3hteFl9a0s7XQkJCQkJaXhLWlNLeCR9S2c1UFlnUTV7S1NQMTlTSy1YU2tnZ0tTU3hteEY1WlNLO10JCQkJaV0JCQkJXQkJCWl4S1pTS3h4JH1LZzVQWWdRNXtLU1AxOVNLLVhTa2dnS1NTeG14WX1rSztdeHh4eHh4eHhpeEtaU0t4N114eHh4eHh4eHh4eHgkfUtnNVBZZ1E1e0tTUDE5U0stWFNrZ2dLU1N4bXhGNVpTSztdeHh4eHh4eHh4eHh4JH1LZzVQWWdRNXtLU1AxOVNLLVhLfX0xfXoxT0tTeG14JDU5UzZLfVNzJ0t9fTF9LWcxT0tTJ1Y7XXh4eHh4eHh4aV14eHh4eHh4eH1LWWt9OXgkfUtnNVBZZ1E1e0tTUDE5U0s7XXh4eHhpXWld';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCdvc05Re09TZXpSZEx0L0U+QVdhdUt3UEloYwp5RGZtWjFYR1U1aVswSnBZfXI8akJsQzc9XUZIOWtNMmJuVnYgNnEzeGcuODRUJywnZ1t6aFJkc0xDNkpQUS52OFdOMTllQnBHNElrT3g8PWxvPkhBYX1YalVGdHJFMlRtTTV7aQpmM251RFY3Yl0veXdZcSBjS1NaMCcpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));
Function Calls
strtr | 1 |
strrev | 1 |
str_replace | 1 |
base64_decode | 2 |
Stats
MD5 | af3f120d0de854db87352b10adbe89dc |
Eval Count | 2 |
Decode Time | 44 ms |