Инф - самообучаемый бот, построенный на базе экспертной системы. Вобщем с ним можно общатся как с человеком. API у них пока нет, поэтому нужно расковырять, каким образом к нему посылается вопрос и как он выдает ответ. Вопрос к инфу задается обычным POST-запросом, вот только в самой date там какая-то лажа, например фраза 'привет' выглядит следующим образом: Я сразу подумал что это base64, наверное это так и есть, однако не понятно в какой кодировке. Страница с инфом в UTF-8, но кодировка ответа и вопроса, если все так как я думаю, явно не в UTF-8.
lukmus PHP: function xorkey($str) { $key = "some very-very long string without any non-latin characters due to different string representations inside of variable programming languages"; $keylen = strlen($key); $str = base64_decode($str); $strlen = strlen($str); $i = 0; $result = ''; while ($i<$strlen) { $buf = $str[$i] ^ $key[$i % $keylen]; $result .= $buf; $i++; } return base64_decode($result); } echo xorkey($a);
zORG зачем его брать, просто скармливаете функции данные. Кодирование будет почти таким же, только вместо base64_decode будет base64_encode
хотелось бы заюзать апи инфов ( iii.ru ). получил в ответе строку зашифрованную - раскодировать её. и наоборот отправлять.
Почему не декодируется? Вот кусок кода: PHP: $url='http://iii.ru/api/2.0/json/Chat.request'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_FAILONERROR, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 3); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $send); $res = curl_exec($ch); if (!$res) { echo curl_error($ch) . "(" . curl_errno($ch) . ")"; } else { curl_close($ch); function xorkey($res) { $key = "some very-very long string without any non-latin characters due to different string representations inside of variable programming languages"; $keylen = strlen($key); $res = base64_decode($res); $strlen = strlen($res); $i = 0; $result = ''; while ($i<$strlen) { $buf = $res[$i] ^ $key[$i % $keylen]; $result .= $buf; $i++; } return base64_decode($result); } echo xorkey($a); } ?> В переменной $res после запроса содержится хэш, но функция xorkey его не видит. Проблема решена.