Ah! Estas intentando hacer un "Ataque de arcoiris".
Eso se hace con un
https://en.wikipedia.org/wiki/Rainbow_table.
Una explicacion del algoritmo:
http://crypto.stackexchange.com/ques...ble-generation
Como notas, se genera una *tabla*. Si eres listo, no la computas cada vez, sino que la pre-generas. Como pa' rematar sabes *exactamente* de donde hasta adonde va el rango de ataque pan comido. Asi que guardas la tabla pregenerada (ej: En sqlite o un motor sql o lo que sea), y solo tienes que hacer un "SELECT Clave FROM Rainbow WHERE Hash=EsteHash). Eso debe salir rapidisimo (osea, el buscar).
Asi que generas un funcion que te retorne el rango de hexadecimales validos, lo haseahs, lo guardas en la tabla y luego le haces hash al que quieres atacar y lo buscas en tu tabla de ataques. *Pufff* Sale en milisegundos. No tienes que hace CUDA ni nada raro con esto.