Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/09/2010, 23:08
Avatar de BaByRoDrI
BaByRoDrI
 
Fecha de Ingreso: julio-2009
Ubicación: Mexico
Mensajes: 60
Antigüedad: 14 años, 10 meses
Puntos: 1
Pregunta Clases e ingeniería inversa

Hola comunidad, en estos momentos ando estudiando PHP Orientada a Objetos, y para ello me pusieron un reto calcular un token valido a partir de una clase dada, he estado leyendo sobre las clases, como se usan y demas, y logro generar un token, el problema es que SIEMPRE me da el mismo 100-100-100-100-100 y a la hora de enviar la respuesta me la dan por mala :P

Me han dado una pista y es hacerle ingeniera inversa al código(????), bueno el código es este:

Código PHP:
Ver original
  1. <?php
  2. class Crypt0reto
  3.     {
  4.     private $prefix_token = 'ddlr-';
  5.     private $valid_algorithm = '56-101-52-51-56';
  6.     private function TokenCalculate($string)
  7.         {
  8.         $md5_1 = md5($string[0]);
  9.         $md5_2 = md5($string[1]);
  10.         $md5_3 = md5($string[2]);
  11.         $md5_4 = md5($string[3]);
  12.         $md5_5 = md5($string[4]);
  13.         $token = ord($md5_1).'-'.ord($md5_2).'-'.ord($md5_3).'-'.ord($md5_4).'-'.ord($md5_5);
  14.         return $token;
  15.         }
  16.     private function DebugToken($token)
  17.         {
  18.         $string_explode_array = explode($this->prefix_token, $token);
  19.         $string = $string_explode_array[1];
  20.         return $string;
  21.         }
  22.     public function CheckToken($token)
  23.         {
  24.         $test_token = $this->TokenCalculate($this->DebugToken($token));
  25.         if($test_token == $this->valid_algorithm)
  26.             {
  27.             return true;
  28.             }
  29.         else
  30.             {
  31.             return false;
  32.             }
  33.         }
  34.     }
  35. ?>

Le hice modificaciones para ver generar uno, me quedo así:

Código PHP:
Ver original
  1. <?php
  2. class Crypt0reto
  3.     {
  4.     private $prefix_token = 'ddlr-';
  5.     private $valid_algorithm = '56-101-52-51-56';
  6.     private function TokenCalculate($string)
  7.         {
  8.         $md5_1 = md5($string[0]);
  9.         echo "MD5 1 hecho: ".$md5_1."<br>";
  10.         $md5_2 = md5($string[1]);
  11.         echo "MD5 2 hecho: ".$md5_2."<br>";
  12.         $md5_3 = md5($string[2]);
  13.         echo "MD5 3 hecho: ".$md5_3."<br>";
  14.         $md5_4 = md5($string[3]);
  15.         echo "MD5 4 hecho: ".$md5_4."<br>";
  16.         $md5_5 = md5($string[4]);
  17.         echo "MD5 5 hecho: ".$md5_5."<br>";
  18.         $token = ord($md5_1).'-'.ord($md5_2).'-'.ord($md5_3).'-'.ord($md5_4).'-'.ord($md5_5);
  19.         echo "Token hecho: ".$token."<br>";
  20.         return $token;
  21.         echo $token;
  22.         }
  23.     private function DebugToken($token)
  24.         {
  25.         $string_explode_array = explode($this->prefix_token, $token);
  26.         echo "String explode hecho: ".$string_explode_array."<br>";
  27.         print_r($string_explode_array); echo "<br>";
  28.         $string = $string_explode_array[1];
  29.         echo "String calculado: ".$string."<br>";
  30.         print_r($string); echo "<br>";
  31.         return $string;
  32.         echo $string;
  33.         }
  34.     public function CheckToken($token)
  35.         {
  36.         $test_token = $this->TokenCalculate($this->DebugToken($token));
  37.         if($test_token == $this->valid_algorithm)
  38.             {
  39.             return true;
  40.             }
  41.         else
  42.             {
  43.             return false;
  44.             }
  45.         }
  46.     }
  47.  
  48. $prueba = new Crypt0reto();    
  49. $prueba->CheckToken('one2one');
  50.  
  51.  
  52. ?>

Alguien me podría hechar la mano para generar el famoso token valido ?

Última edición por BaByRoDrI; 25/09/2010 a las 23:19