C:\> Rostislav Persion's Projects

.:: Distributed MD5 Cracker ::.
Distributed MD5 Cracker




This program is a brute force MD5 hash cracker. It generates strings and encodes them. Then it compares the encoding to the MD5 hash. If the encoding is the same as the hash, the program displays the result.

SOFTWARE WRITTEN IN PHP
   1:  <?php
   2:   
   3:  //get user input
   4:  $mdhash = "76175b4492147d59fa0376a44bf9ead7";    //$_GET['mdhash'];
   5:  $numstart = 0;                                    //$_GET['start'];
   6:  $numend = 8800000;                                //$_GET['end'];
   7:  $iffoundemail = "seeplusplus@gmail.com";        //$_GET['email'];
   8:   
   9:  //show user input
  10:  print("\n<input>\n");
  11:  print("  <md5hash>" . $mdhash . "</md5hash>\n");
  12:  print("  <startvalue>" . $numstart . "</startvalue>\n");
  13:  print("  <endvalue>" . $numend . "</endvalue>\n");
  14:  print("</input>\n");
  15:   
  16:  //show system settings
  17:  print("\n<system>\n");
  18:  print("  <date>" . date("d/m/y", time()) . "</date>\n");
  19:  print("  <time>" . date("H:i:s", time()) . "</time>\n");
  20:  print("  <method>brute_force_ABC_abc_123</method>\n");
  21:  print("</system>\n\n");
  22:   
  23:  //define character set
  24:  $lex = Array(
  25:  " ","a","b","c","d","e","f","g","h","i","j","k","l",
  26:  "m","n","o","p","q","r","s","t","u","v","w","x","y",
  27:  "z","A","B","C","D","E","F","G","H","I","J","K","L",
  28:  "M","N","O","P","Q","R","S","T","U","V","W","X","Y",
  29:  "Z","0","1","2","3","4","5","6","7","8","9");
  30:   
  31:  //count character set
  32:  $numbase = count($lex);
  33:   
  34:  //declare working variables
  35:  $res=0; $powres=0; $mant=0; $num=0; $num2=0;$found=false;
  36:   
  37:  //main loop
  38:  $t1 = time();
  39:  for ($num2=$numstart;$num2<$numend;$num2++)
  40:  {
  41:      $num = $num2;
  42:      $mant = floor(log($num,$numbase));
  43:      $strres = "";        
  44:      while ($mant >= 0)
  45:      {
  46:          $powres = pow($numbase, $mant);
  47:          $res = floor($num / $powres);
  48:          $strres .= $lex[$res];
  49:          $num -= floor($res * $powres);
  50:          $mant--;
  51:      }
  52:      if (md5($strres) == $mdhash)
  53:      {
  54:          $found = true;
  55:          break;
  56:      }
  57:  }
  58:  $t2 = time();
  59:   
  60:  //show result
  61:  if ($found)
  62:  {
  63:      print("<output>\n");
  64:      print("  <cputime>" . ($t2 - $t1) . "</cputime>\n");
  65:      print("  <ascii>" . $strres . "</ascii>\n");
  66:      print("</output>\n");
  67:  }
  68:  else
  69:  {
  70:      print("<output>\n");
  71:      print("  <cputime>" . ($t2 - $t1) . "</cputime>\n");
  72:      print("</output>\n");
  73:  }
  74:   
  75:  ?>