Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: TrashAmbishion en 6 Mayo 2013, 21:35 pm



Título: Ayuda con este simple codigo !!
Publicado por: TrashAmbishion en 6 Mayo 2013, 21:35 pm
A la hora de convertir de C# a Php las funciones cambian y no me percate estoy verificando para cambiarlas.

Código
  1.  
  2. public function cryptography($InSeed, $InString)
  3.    {
  4.  
  5.         NewEncryptString = "";
  6.         EncryptSeed = InSeed;
  7.  
  8.         for (c1 = 1; c1 <= Strings.Len(InString); c1++) {
  9.     EncryptChar = Strings.Mid(InString, c1, 1);
  10.     EncryptChar = Strings.Chr(Strings.Asc(EncryptChar) ^ EncryptSeed);
  11.     EncryptSeed = EncryptSeed ^ c1;
  12.     NewEncryptString = NewEncryptString + EncryptChar;
  13.        }
  14. }
  15.  
  16.  
  17.  



Salu y Gracias


Título: Re: Ayuda con este simple codigo !!
Publicado por: $Edu$ en 6 Mayo 2013, 21:43 pm
Deja ejemplos por las dudas que sirva para saber que esta mal. Por ejemplo escribe que devuelve la palabra "abc" en los 2 casos.


Título: Re: Ayuda con este simple codigo !!
Publicado por: #!drvy en 6 Mayo 2013, 22:05 pm
Segun he leido Mid es substr() en php.
Asc es ord()..

No hace falta que declares las variables antes de usarlas.

Saludos


Título: Re: Ayuda con este simple codigo !!
Publicado por: TrashAmbishion en 7 Mayo 2013, 00:19 am
Alguien me puede ecir si este codigo esta bien, lo que hace es cifrar una cadena.

Código
  1.  
  2.    public function cryptography($InSeed, $InString)
  3.    {
  4.        $EncryptSeed = $InSeed;
  5.        $NewEncryptString = "";
  6.        for ($c1 = 1; $c1 <= strlen($InString); $c1++) {
  7.            $EncryptChar = substr($InString, $c1, 1);
  8.            $EncryptChar = Chr(Ord($EncryptChar) Xor $EncryptSeed);
  9.            $InSeed = $EncryptSeed Xor $c1;
  10.            $NewEncryptString = $NewEncryptString . $EncryptChar;
  11.        }
  12.        return $NewEncryptString;
  13.    }
  14.  
  15.  


Título: Re: Ayuda con este simple codigo !!
Publicado por: engel lex en 7 Mayo 2013, 00:53 am
se supone que esto era una pregunta o un problema?


Título: Re: Ayuda con este simple codigo !!
Publicado por: #!drvy en 7 Mayo 2013, 00:58 am
Estaba intentando convertir un codigo de C# a PHP pero se dio cuenta de que los nombres de las funciones y las variables cambian xD.

@TrashAmbishion que tiene que devolver en ambos casos ? Ami me devuele un string vacio a la hora de cifrarlo y a la hora de descifrarlo no devuelve el string ¬¬


Saludos


Título: Re: Ayuda con este simple codigo !!
Publicado por: TrashAmbishion en 7 Mayo 2013, 02:28 am
La arregle y ya me funciona sin problemas pero tengo una duda, en Vb.Net cuando hago este For

Código
  1. For c1 = 1 To Len(InString)
  2.            EncryptChar = Mid(InString, c1, 1)
  3.            EncryptChar = Chr(Asc(EncryptChar) Xor EncryptSeed)
  4.            EncryptSeed = EncryptSeed Xor c1
  5.            NewEncryptString = NewEncryptString & EncryptChar
  6.        Next
  7.  

en la linea
Código
  1. EncryptChar = Mid(InString, c1, 1)
si la cadena que le paso por ejemplo: "prueba" el toma el primer caracter, pero en php con este codigo


Código
  1.  
  2. public function cryptography($InSeed, $InString)
  3.    {
  4.        $EncryptSeed = $InSeed;
  5.        $NewEncryptString = "";
  6.        for ($c1 = 1; $c1 <= strlen($InString)-1; $c1++) {
  7.            $EncryptChar = substr($InString, $c1, 1);
  8.            $EncryptChar = chr(ord($EncryptChar) ^ $EncryptSeed);
  9.            $EncryptSeed = $EncryptSeed ^ $c1;
  10.            $NewEncryptString = $NewEncryptString . $EncryptChar;
  11.        }
  12.        return $NewEncryptString;
  13.    }
  14.  
  15.  

en esta linea me toma a partir del 2do caracter, como lo puedo solucionar.

Salu2


Título: Re: Ayuda con este simple codigo !!
Publicado por: #!drvy en 7 Mayo 2013, 02:42 am
En php el primer carácter en el index es 0. ($c1=0).

Saludos