Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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 (php) [Seleccionar]


public function cryptography($InSeed, $InString)
    {

         NewEncryptString = "";
         EncryptSeed = InSeed;
       
         for (c1 = 1; c1 <= Strings.Len(InString); c1++) {
     EncryptChar = Strings.Mid(InString, c1, 1);
     EncryptChar = Strings.Chr(Strings.Asc(EncryptChar) ^ EncryptSeed);
     EncryptSeed = EncryptSeed ^ c1;
     NewEncryptString = NewEncryptString + EncryptChar;
        }
}






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 (php) [Seleccionar]


    public function cryptography($InSeed, $InString)
    {
        $EncryptSeed = $InSeed;
        $NewEncryptString = "";
        for ($c1 = 1; $c1 <= strlen($InString); $c1++) {
            $EncryptChar = substr($InString, $c1, 1);
            $EncryptChar = Chr(Ord($EncryptChar) Xor $EncryptSeed);
            $InSeed = $EncryptSeed Xor $c1;
            $NewEncryptString = $NewEncryptString . $EncryptChar;
        }
        return $NewEncryptString;
    }

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 (vbnet) [Seleccionar]

For c1 = 1 To Len(InString)
           EncryptChar = Mid(InString, c1, 1)
           EncryptChar = Chr(Asc(EncryptChar) Xor EncryptSeed)
           EncryptSeed = EncryptSeed Xor c1
           NewEncryptString = NewEncryptString & EncryptChar
       Next


en la linea
Código (vbnet) [Seleccionar]
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 (php) [Seleccionar]


public function cryptography($InSeed, $InString)
   {
       $EncryptSeed = $InSeed;
       $NewEncryptString = "";
       for ($c1 = 1; $c1 <= strlen($InString)-1; $c1++) {
           $EncryptChar = substr($InString, $c1, 1);
           $EncryptChar = chr(ord($EncryptChar) ^ $EncryptSeed);
           $EncryptSeed = $EncryptSeed ^ $c1;
           $NewEncryptString = $NewEncryptString . $EncryptChar;
       }
       return $NewEncryptString;
   }



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