Estoy trabajando para mi tesis de licenciatura al final de la cual mi objetivo es implementar un cracker de hash basado en Javascript de prueba de concepto. La idea es trabajar así: los usuarios pueden enviar un valor hash junto con información sobre el algoritmo utilizado. (Otros) los usuarios también pueden hacer clic en un botón en el sitio web para participar en el proceso de craqueo. La tarea del servidor es aceptar y dividir las "órdenes" enviadas en rangos, dependiendo del número de trabajadores disponibles. Los rangos se envían a los clientes que hicieron clic en dicho botón.
Actualmente estoy atascado con la gran pregunta de cómo implementar realmente esta función de fuerza bruta. Por lo tanto, mi principal problema ahora es que, francamente, todavía no estoy tan acostumbrado a Javascript. Para empezar, solo usaría un juego de caracteres codificado: alfanumérico, mayúsculas y minúsculas, sin caracteres especiales. El problema es que, honestamente, no tengo absolutamente NINGUNA pista de cómo implementar realmente la función que probaría las combinaciones de caracteres, sobre cómo programar eso. Me imagino usando una matriz normal que contiene el conjunto de caracteres, luego dos cadenas. Una cadena contendrá el rango, la otra contendrá las combinaciones probadas. Así que de alguna manera tendría que recorrer el conjunto de caracteres y las cadenas quizás con bucles en cascada o algo así, pero estoy realmente atascado con la pregunta de "cómo" exactamente :). No espero que ninguno de ustedes realmente me proporcione el código fuente completo para tal función (a menos que quiera, por supuesto), pero realmente apreciaría algunas sugerencias o explicaciones sobre cómo implementar una función de fuerza bruta. Tampoco me preocuparía por el rendimiento o la codificación optimizada en este momento, sino por la codificación completa, o como quiera llamarlo.