Ayuda con este simple codigo !!

Iniciado por TrashAmbishion, 6 Mayo 2013, 21:35 PM

0 Miembros y 1 Visitante están viendo este tema.

TrashAmbishion

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

$Edu$

Deja ejemplos por las dudas que sirva para saber que esta mal. Por ejemplo escribe que devuelve la palabra "abc" en los 2 casos.

#!drvy

Segun he leido Mid es substr() en php.
Asc es ord()..

No hace falta que declares las variables antes de usarlas.

Saludos

TrashAmbishion

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;
    }


engel lex

se supone que esto era una pregunta o un problema?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

#!drvy

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

TrashAmbishion

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

#!drvy

En php el primer carácter en el index es 0. ($c1=0).

Saludos