ayuda con java

Iniciado por tormenta, 26 Abril 2005, 20:24 PM

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

tormenta

 private String crypto(String pass, String key)
    {
        String encrypt = null;
        int codigo = 0;
        int j = 1;
        for(int i = 0; i < pass.length();)
        {
            codigo += (key.hashCode() % key.charAt(i) >> 6) + (pass.charAt(i) << 2) ^ pass.charAt(i) * j;
            j *= 107;
            i++;
            j++;
        }

        encrypt = "" + codigo;
        return encrypt;
    }

alguien me puede decir que hace esta funcion.
es decir si la variable pass tuviera los caracteres "a12d"
cual seria el resutado en encrypt?
gracias.

Slasher-K

Lo que hace es cifrar caracter por caracter toda una cadena utilizando una clave.


(key.hashCode() % key.charAt(i) >> 6) + (pass.charAt(i) << 2) ^ pass.charAt(i) * j;


Esa parte del código es el algoritmo que cifra el caracter, lo que hace es sumarle al código de caracter el resultado de toda esa operación.

La variable j sirve para que el algoritmo no sea lineal, es decir quer no haya una relación directa entre un caracter y el siguiente, etc.

Si querés saber el resultado pss probala y listo :P.

[offtopic]
Usa las etiquetas code cuando pongas códigos, realmente ayuda mucho a la hora de leerlo ;). Las etiquetas code se ponen usando el botón con esta imagen:

[/offtopic]

Saludos.



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*

tormenta

gracias por la recomendacion.
voy a tratar de sacar el valor de encrypt de forma manual porque no tego compilador de java, por esta razon no lo he podido probar.

Si alguien lo puedo compilar y darme una idea se lo agradeceria.