Foro de elhacker.net

Programación => Java => Mensaje iniciado por: tormenta en 26 Abril 2005, 20:24 pm



Título: ayuda con java
Publicado por: tormenta en 26 Abril 2005, 20:24 pm
 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.


Título: Re: ayuda con java
Publicado por: Slasher-K en 27 Abril 2005, 02:54 am
Lo que hace es cifrar caracter por caracter toda una cadena utilizando una clave.

Código:
 (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: (http://foro.elhacker.net/Themes/default/images/bbc/code.gif)

[/offtopic]

Saludos.


Título: Re: ayuda con java
Publicado por: tormenta en 27 Abril 2005, 16:39 pm
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.