Гость
Покинул форум
Сообщений всего: 103
Дата рег-ции: Авг. 2014
Откуда: Германия
Помог: 0 раз(а)
[+]
|
Привет. Есть портал. На нём зарегался и логин с паролям и голдом сразу для всех моих проектов. Логин с паролем на ура начал делать перевод между серваками. Взял я xxtea немножко допилил передача данных идёт, только не стабильно( Например если заполнил форму перевода раз 15 подрят до раз 5 вылезут ошибки и скрипт не сработает.
Curl Говорит
PHP:
скопировать код в буфер обмена
ПЕРЕВОД ВАЛЮТЫ ПРОФИЛЬ HTTP /1 .1 200 OK Server : nginx /1 .2 .1 Date: Thu , 19 Mar 2015 22 :34 :18 GMT Content -Type : text /html Content -Length : 295 Connection : keep -alive X -Powered -By : PHP /5 .4 .36 -0 +deb7u1 Vary : Accept -Encoding Warning : gzinflate(): data error in /home /igrodel /igrodel .tk /public_html /game /stalker /ag /ob .php on line 87 Notice: Undefined offset: 1 in /home/igrodel/igrodel.tk/public_html/game/stalker/ag/ob.php on line 92
Думал что сервак не справляется добавил кучу пауз. (для снижения нагрузки) но всеравно.... Код обработчик (шлёт запрос игре)
PHP:
скопировать код в буфер обмена
<?PHP $perevod = '1'; $date= date("y.m.d H:i:s"); $game = $_POST['name']; $goldkk = $_POST['gold']; if (!preg_match("/[0-9]/i", $goldkk)) {//проверка ввода сумы $perevod = '0'; header("Location: index.php?do=8"); } if($sh['gold'] >= $goldkk){} else { $perevod = '0'; header("Location: index.php?do=9"); } switch ($game) { case "stalker": $mest = 'stalker'; break; default: $mest = 'eror'; break; } //проверка select if ($mest == 'eror'){ $perevod = '0'; header("Location: index.php?do=6"); } //основные данные $text = "$sh[id], $goldkk"; //предваритильная кодировка инфы //шыфр xtea инфа $sekret = mt_rand(1 ,99999999999999 ); $text = xxtea_encrypt($text, $sekret); //фальшыфка для get :D пускай тру хакеры помучаются пару недель :D $iid = md5($sol.$iid.sha1($sekret.$iid).md5($sol.$iid)); $dan = md5($sol.$iid.$dan.sha1($sekret.$iid.$dan).md5($sekret.$iid.$dan)); //шифровка ключа который делает розшыфровку :D знаю что не хуя нне кто не понял, но так надёжние :D :D $delitil = mt_rand (189 , 9999999999999999 ); $mnogitel = mt_rand (512 , 9999999999999999 ); $dodan = mt_rand (394 , 9999999999999999 ); $procent = mt_rand (10 , 9999999999999999 ); $procent= $sekret / $procent; $sekret = $sekret * $mn / $pi; $pq = $sekret / $delitil; $pw = $pq /$procent; $output = $pw * $mnogitel ; $otv = $output + $dodan * $mn1; //если выбрали сталкер if ($mest == 'stalker'){ $proverka = 'http://igrodel.tk//game/stalker/ag/otk.php'; if (curl_onl("$proverka")) { $ch = curl_init('http://igrodel.tk//game/stalker/ag/ob.php?id='.$iid.'danie='.$dan.''); curl_setopt($ch, CURLOPT_REFERER , "http://igrodel.tk/ddgdghdgh/dfhdfgh/gggg.php"); curl_setopt($ch, CURLOPT_POSTFIELDS , "id=$text&otv=$otv&output=$output&mn1=$mn1&dodan=$dodan&procent=$procent&delitil=$delitil&mnogitel=$mnogitel&mn=$mn&pi=$pi"); echo''.$result.'<br><br><br>'; } else { $perevod = '0'; header("Location: index.php?do=7"); } } ?>
Код который получает запрос
PHP:
скопировать код в буфер обмена
$id = $_POST['id']; $otv = $_POST['otv']; $output = $_POST['output']; $mn1 = $_POST['mn1']; $dodan = $_POST['dodan']; $procent = $_POST['procent']; $delitil = $_POST['delitil']; $mnogitel = $_POST['mnogitel']; $mn = $_POST['mn']; $pi = $_POST['pi']; //розшыфровка ключа для xxtea $otv = $output / $mn1 - $dodan; $sekret =$output * $procent * $delitil / $mnogitel /$mn * $pi; $id = xxtea_decrypt($id, $sekret); echo'<br><br>'; echo''.$result["0"].''; echo'<br><br>'; echo''.$result["1"].'';
(щас включён вывод асива, так как ловлю баги)
Ну и функции xxtea
PHP:
скопировать код в буфер обмена
function long2str($v, $w) { $n = ($len - 1) << 2; if ($w) { $m = $v[$len - 1]; if (($m < $n - 3) || ($m > $n)) return false; $n = $m; } for ($i = 0; $i < $len; $i++) { $s[$i] = pack("V", $v[$i]); } if ($w) { } else { } } function str2long($s, $w) { if ($w) { } return $v; } function int32($n) { while ($n >= 2147483648) $n -= 4294967296; while ($n <= -2147483649) $n += 4294967296; return (int) $n; } function xxtea_encrypt($str, $key) { if ($str == "") { return ""; } $v = str2long($str, true); $k = str2long($key, false); for ($i = count($k); $i < 4; $i++) { $k[$i] = 0; } } $z = $v[$n]; $y = $v[0]; $delta = 0x9E3779B9; $q = floor(6 + 52 / ($n + 1 )); $sum = 0; while (0 < $q--) { $sum = int32($sum + $delta); $e = $sum >> 2 & 3; for ($p = 0; $p < $n; $p++) { $y = $v[$p + 1]; $mx = int32((($z >> 5 & 0x07ffffff) ^ $y << 2) + (($y >> 3 & 0x1fffffff) ^ $z << 4)) ^ int32(($sum ^ $y) + ($k[$p & 3 ^ $e] ^ $z)); $z = $v[$p] = int32($v[$p] + $mx); } $y = $v[0]; $mx = int32((($z >> 5 & 0x07ffffff) ^ $y << 2) + (($y >> 3 & 0x1fffffff) ^ $z << 4)) ^ int32(($sum ^ $y) + ($k[$p & 3 ^ $e] ^ $z)); $z = $v[$n] = int32($v[$n] + $mx); } return long2str($v, false); } function xxtea_decrypt($str, $key) { if ($str == "") { return ""; } $v = str2long($str, false); $k = str2long($key, false); for ($i = count($k); $i < 4; $i++) { $k[$i] = 0; } } $z = $v[$n]; $y = $v[0]; $delta = 0x9E3779B9; $q = floor(6 + 52 / ($n + 1 )); $sum = int32($q * $delta); while ($sum != 0) { $e = $sum >> 2 & 3; for ($p = $n; $p > 0; $p--) { $z = $v[$p - 1]; $mx = int32((($z >> 5 & 0x07ffffff) ^ $y << 2) + (($y >> 3 & 0x1fffffff) ^ $z << 4)) ^ int32(($sum ^ $y) + ($k[$p & 3 ^ $e] ^ $z)); $y = $v[$p] = int32($v[$p] - $mx); } $z = $v[$n]; $mx = int32((($z >> 5 & 0x07ffffff) ^ $y << 2) + (($y >> 3 & 0x1fffffff) ^ $z << 4)) ^ int32(($sum ^ $y) + ($k[$p & 3 ^ $e] ^ $z)); $y = $v[0] = int32($v[0] - $mx); $sum = int32($sum - $delta); } return long2str($v, true); } function curl_onl($domain) { { return false; } if ($response) return true; return false; }
Из - за чего такое?
Ищё интересует вопрос как можно ждать пока ответит мне удалённый сервак? (Он мне должен прислать в ответе пост данные а я ему второй запрос и только потом зачисление голда) Зарание спс
|