// Paste Your Private RSA Key below $authuser = "freeauth"; $authpass = "freeauth"; $filename = "backup.bin"; $key = "-----BEGIN RSA PRIVATE KEY-----\n". "-----END RSA PRIVATE KEY-----"; function encryptText($aeskey, $iv, $text) { $text = trim($text); $md5 = md5($text); $do = trim(`echo "$md5$text" | openssl enc -e -aes-128-cbc -K '$aeskey' -iv 0 | openssl base64 -e`); return $do; } function decryptText($aeskey, $iv, $text) { $do = trim(`echo "$text" | openssl base64 -d | openssl enc -d -aes-128-cbc -K '$aeskey' -iv 0`); $md5 = substr($do, 0, 32); $decrypted = substr($do, 32); if($md5 != md5($decrypted)) return null; return $decrypted; } if(is_uploaded_file($_FILES['file']['tmp_name'])) { $crypttext = trim(file_get_contents($_FILES['file']['tmp_name'])); list($rsa, $aes) = explode("\n\n", $crypttext, 2); $rsa = base64_decode(trim($rsa)); $aes = trim($aes); if(!openssl_get_privatekey(trim($key))) die("Incorrect username and/or password"); $res = openssl_get_privatekey(array($key, "")); if(!openssl_private_decrypt($rsa, $newsource, $res)) die("Incorrect username and/or password"); list($username, $password, $action, $aesinfo) = explode('|', trim($newsource), 4); $username = trim($username); $password = trim($password); $action = trim($action); $aesinfo = trim($aesinfo); $aeskey = substr($aesinfo, 0, 32); $iv = substr($aesinfo, 32, 16); if($username == $authuser && $password == $authpass) { if($action == "restore") { $fp = fopen($filename, "r"); $data = trim(fgets($fp, 16384)); $data = encryptText($aeskey, $iv, $data); echo $data; } else { $data = decryptText($aeskey, $iv, $aes); $fp = fopen($filename, "w"); fputs($fp, $data); fclose($fp); die("0Backup was sucessful."); } } else { die("Incorrect username and/or password"); } die; } ?>