Guest User

index.php

a guest
Sep 2nd, 2011
1,089
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. $max_req = 4;
  3.  
  4. // ограничить кол-во запросов для сессии: 1 запрос на 4 секунд
  5. session_start();
  6. if ( isset($_SESSION['last_request_time']) )
  7. {
  8.     if ($_SESSION['request_count'] > $max_req)
  9.     {
  10.         #var_dump($_SESSION['last_request_time'], mktime()) ;
  11.        if ( ($_SESSION['last_request_time'] + 3) > mktime() )
  12.         {
  13.             $data['error'] = "You can do 1 search query in 3 seconds. Want more? Send your suggestion to harpywar@gmail.com.";
  14.             die ( json_encode($data) );
  15.         }
  16.         else{
  17.              $_SESSION['last_request_time'] = mktime();
  18.              $_SESSION['request_count'] = 0;
  19.         }
  20.     }
  21.     else
  22.     {
  23.         $_SESSION['request_count']++;
  24.     }
  25.  
  26.  
  27. }
  28. else
  29. {
  30.     $_SESSION['last_request_time'] = mktime();
  31.     $_SESSION['request_count'] = 0;
  32. }
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39. $hash =  ( isset($_REQUEST["hash"]) ) ? $_REQUEST["hash"] : false;
  40. $search_in = ( isset($_REQUEST["search_in"]) ) ? $_REQUEST["search_in"] : false;
  41.  
  42. if ( $hash )
  43. {
  44.     require_once("inc/HashCrack.class.php");
  45.  
  46.     $db_steps = 0; // кол-во шагов для поиска
  47.     $db_size = 0; // размер бд в байтах
  48.     $db_rows = 0; // кол-во записей
  49.     $db_elapsed = 0; // поисковое время
  50.     $db_bytes_read = 0; // считано байтов
  51.  
  52.     // TODO: cache? для последних 100 запросов
  53.     //       если запрос есть в файле кеша, то отправить пароли оттуда
  54.  
  55.     // поиск в одном файле за один запрос
  56.     switch ($search_in)
  57.     {
  58.         // dictionary
  59.         case '1':
  60.             $passList = SearchDictionary($hash);
  61.             break;
  62.         // 1-6 symbols
  63.         case '2':
  64.             $passList = SearchAlpha6($hash);
  65.             break;
  66.         // 7-9 symbols
  67.         case '3':
  68.             $passList = SearchDigits9($hash);
  69.             break;
  70.         // 10 symbols
  71.         case '4':
  72.             $passList = SearchDigits10($hash);
  73.             break;
  74.         default:
  75.             $passList = false;
  76.     }
  77.  
  78.     //$passList2 = SearchNum9($hash);
  79.     //$passList = array_merge($passList1, $passList2);
  80.  
  81.     //var_dump($db_elapsed);
  82.     //var_dump($passList);
  83.     //foreach ($passList as $p)
  84.     //  echo $p . '<br>';
  85.  
  86.     #if (!$passList)
  87.     #   $passList = SearchNum($hash);
  88.  
  89.     $data = array
  90.     (
  91.         'error' => ($passList === false) ? 'Not found' : '',
  92.         'passwords' => $passList,
  93.  
  94.         'database' => array (
  95.             'size' => $db_size, //$db_size,
  96.             'rows' => $db_rows,
  97.             'steps' => $db_steps,
  98.             'passwords_found' => count($passList),
  99.             'bytes_read' => $db_bytes_read,
  100.             'elapsed' => $db_elapsed
  101.         ),
  102.         'server' => array (
  103.             'processor' => 'P4 3.06GHz',
  104.             'memory' => '256Mb',
  105.             'disk' => '250Gb',
  106.             'os' => 'Debian 6',
  107.             'hosted' => 'Naki-BoT'
  108.         )
  109.  
  110.     );
  111.  
  112.  
  113.  
  114.     #var_dump($data);
  115.  
  116.     //$s = serialize($data);
  117.     //echo $s;
  118.     echo json_encode($data);
  119. }
  120.  
  121.  
  122.  
  123. // искать хеш в паролях из букх и цифр 0-9a-z, 1-6 символов
  124. function SearchAlpha6($hash)
  125. {
  126.     $filename = "../250g/hash_data/1-6alpha";
  127.     $pass_length = 6;
  128.     $pass_compressed = false;
  129.     $hash_length = 3;
  130.     $hash_compressed = true;
  131.     $meta1_length = 2;
  132.     $meta2_length = 6;
  133.  
  134.     $pass = CrackIt($hash, $filename, $pass_length, $pass_compressed, $hash_length, $hash_compressed, $meta1_length, $meta2_length);
  135.     return $pass;
  136. }
  137. // искать хеш в паролях из цифр 0-9, 7-9 символов
  138. function SearchDigits9($hash)
  139. {
  140.     $filename = "../250g/hash_data/7-9digits";
  141.     $pass_length = 5;
  142.     $pass_compressed = true;
  143.     $hash_length = 3;
  144.     $hash_compressed = true;
  145.     $meta1_length = 2;
  146.     $meta2_length = 6;
  147.  
  148.     $pass = CrackIt($hash, $filename, $pass_length, $pass_compressed, $hash_length, $hash_compressed, $meta1_length, $meta2_length);
  149.     return $pass;
  150. }
  151. // искать хеш в паролях из цифр 0-9, 10 символов
  152. function SearchDigits10($hash)
  153. {
  154.     $filename = "../250g/hash_data/10digits";
  155.     $pass_length = 5;
  156.     $pass_compressed = true;
  157.     $hash_length = 3;
  158.     $hash_compressed = true;
  159.     $meta1_length = 2;
  160.     $meta2_length = 6;
  161.  
  162.     $pass = CrackIt($hash, $filename, $pass_length, $pass_compressed, $hash_length, $hash_compressed, $meta1_length, $meta2_length);
  163.     return $pass;
  164. }
  165. // искать хеш в паролях из словаря (32 символа)
  166. function SearchDictionary($hash)
  167. {
  168.     $filename = "../250g/hash_data/dictionary";
  169.     $pass_length = 32;
  170.     $pass_compressed = false;
  171.     $hash_length = 3;
  172.     $hash_compressed = true;
  173.     $meta1_length = 1;
  174.     $meta2_length = 5;
  175.            
  176.     $pass = CrackIt($hash, $filename, $pass_length, $pass_compressed, $hash_length, $hash_compressed, $meta1_length, $meta2_length);
  177.     return $pass;
  178. }
  179.  
  180. function CrackIt($hash, $filename, $pass_length = 5, $pass_compressed = false, $hash_length = 3, $hash_compressed = true, $meta1_length = 2, $meta2_length = 6)
  181. {
  182.     global $db_steps, $db_size, $db_rows, $db_elapsed, $db_bytes_read;
  183.     $h = new HashCrack($filename, $hash_length, $hash_compressed, $pass_length, $pass_compressed, $meta1_length, $meta2_length);
  184.     $pass = $h->Search($hash);
  185.  
  186.  
  187.     $db_size += $h->GetDbSize();
  188.     $db_rows += $h->GetDbRows();
  189.     $db_steps += $h->GetDbSteps();
  190.     $db_bytes_read += $h->GetDbBytesRead();
  191.     $db_elapsed += $h->GetDbElapsed();
  192.  
  193.     if ( $pass !== false  )
  194.         return $pass;
  195.     else
  196.         return false;
  197. }
RAW Paste Data