sábado, 9 de octubre de 2010

PHP: Generador de palabras por fuerza bruta.

Hoy a petición de un amigo he creado un script muy sencillo y que probablemente existan mejores maneras de hacerlo con programación genérica pero oye al que le sirva que lo use.

En este caso es un generador de todas las palabras del alfabeto Hexadecimal, es decir, del 1 al 0 y de la A a la F. No se diferencia entre mayúsculas y minúsculas pero no es un problema arreglarlo. Tan sólo hay que añadir todos los caracteres que deseemos a la cadena alpha y cambiar la variable longitud por su nuevo valor.

Por otro lado la longitud de este diccionario será siempre 7 ya que conocemos el número exacto de caracteres. Si no fuera así, existen otros métodos para generar un diccionario completo. Pedírmelo y os lo pondré.

También añadir que si quieres que tenga 10 caracteres de longitud tendrás que añadir 3 for y concatenar alpha al valor de sus contadores.

Por último, el resultado será guardado en la variable $token.

<?php
$token = "";
$longitud = 16;
$alfa = "1234567890abcdef";
for ($caracter1 = 0; $caracter1< $longitud; $caracter1++){
    for ($caracter2=0; $caracter2< $longitud; $caracter2++){
        for ($caracter3=0; $caracter3< $longitud; $caracter3++){
            for ($caracter4=0; $caracter4< $longitud; $caracter4++){
                for ($caracter5=0; $caracter5< $longitud; $caracter5++){
                    for ($caracter6=0; $caracter6< $longitud; $caracter6++){
                        for ($caracter7=0; $caracter7< $longitud; $caracter7++){
                            $token  = $alfa[$caracter1].$alfa[$caracter2].$alfa[$caracter3].$alfa[$caracter4].$alfa[$caracter5].$alfa[$caracter6].$alfa[$caracter7];
                        }
                    }
                }
            }   
        }
    }
}
?>

Espero que os sirva de utilidad.